O documento introduz o Redis, um armazenamento de dados em memória do tipo chave-valor (NoSQL), e apresenta seus principais tipos de dados (strings, hashes, listas, conjuntos e conjuntos ordenados) e casos de uso (cache, sessões, filas e contagens).
Redis
- Redis =Remote Dictionary Service
- Armazém de estruturas de dados em memória
- NoSQL
- Chave-Valor
- Atomicidade de operações
3.
Casos de Uso
-Cache
- Sessão (isolar estado)
- FPC (Full Page Caching)
- Filas
- Ranking e contabilização
- Ex.: usuários online, páginas acessadas, top 10
- Message broker (Pub/Sub)
4.
Tipos de dados
-String
- Hash
- List
- Set
- Sorted set
- Bitmap
- Hyperloglog
- Geospatial Index
5.
Plataformas
- Linux &MacOS:
- https://redis.io/download
- Windows
- Não possui versão oficial
- Versão experimental: https://github.com/MSOpenTech/redis
Strings - Get,Set & Del
- SET "key_name_string" "value_string"
- SET "key_name_number" 100
- GET "key_name_string"
- GET "key_name_string"
- DEL "key_name_string"
8.
MGET & MSET
-MSET key value [key value ...]
- Ex.: MSET nome "Djeison" idade "23"
- MGET key [key ...]
- Ex.: MGET nome idade
Keys
- Consulta dechaves
- * = nenhum ou muitos caracteres
- ? = um caractere
- [] = define um domínio
- Ex.:
- KEYS *
- KEYS "spring:session:*"
- KEYS "megasena:resultado:??-05-2017"
- KEYS "megasena:resultado:1[49]-05-20??"
11.
Hash - Hset,Hget & Hdel
- Contém pares de campo-valor
- HSET key field value
- Ex.: HSET "usuario:100" "nome" "Sidão"
- HGET key field
- Ex.: HGET "usuario:100" "nome"
- HDEL key field [field ...]
- Ex.: HDEL "usuario:100" "nome"
12.
Expiração de chaves
-EXPIRE key seconds
- Tempo para expirar chave
- Ex.: EXPIRE "usuario:100" 60
- TTL key
- Tempo restante para expiração
- "-1" para nunca expira
- Ex.: TTL "usuario:100"
Listas
- Implementação deLinked List
- LPUSH key value [value ...]
- RPUSH key value [value ...]
- "Empurra" valores para a lista
- Ex.: LPUSH mensagens "Esta é a primeira mensagem"
- LPOP key
- RPOP key
- "Consumir" valor da lista, remove elemento
- Ex.: LPOP mensagens
Espera ocupada (BusyWaiting)
- "É um técnica onde um processo checa de maneira repetitiva se
determinada condição é verdadeira" - Wikipedia
- Deve ser evitada pelo custo computacional