Pular para o conteúdo principal

02 - Querys basicas

[[toc]]


Strings

Inserir dados

set keyName value [expiration EX seconds|PX milliseconds] [ NX| XX]

- EX seconds - tempo de expiração em segundos
- PX seconds - tempo de expiração em milessegundos
- NX - Não permite sobscrever o registro se ele não existir
- XX - Permite sobscrever o registro

set user:10 ex 100

ex:

SET "resultado:20-01-2020:megasena" "1,5,9,3,8,7" EX 1000 NX
SET "resultado:10-02-2020:megasena" "4,5,9,3,8,7" PX 10000 XX
SET "resultado:08-03-2020:megasena" "1,6,9,7,8,7" EX 50
SET "resultado:06-04-2020:megasena" "0,31,9,5,8,1" XX
SET "resultado:06-04-2020:quina" "31,9,5,8,1"


Recuperar valor

GET "KEY"

ex:

GET "resultado:20-01-2020:megasena"
GET "resultado:10-02-2020:megasena"
GET "resultado:08-03-2020:megasena"
GET "resultado:06-04-2020:megasena"
GET "resultado:06-04-2020:quina"

Deletar valor

DET "KEY"

ex:

DET "resultado:20-01-2020:megasena"
DET "resultado:10-02-2020:megasena"
DET "resultado:08-03-2020:megasena"
DET "resultado:06-04-2020:megasena"
DET "resultado:06-04-2020:quina"

Listar chaves

KEYS "<REGEX>"

ex:

---------------------------------------------
// O "KEYS *" (com asterisco) nos retorna todas as chaves armazenadas. Se quisermos filtrá-las pelo nome, basta fazer, por exemplo:
<ip> KEYS *
1) "penultimo_sorteio"
2) "resultado:03-05-2015:megasena"
3) "resultado:17-05-2015:megasena"
4) "ultimo_sorteio"
5) "resultado:10-05-2015:megasena"
6) "antepenultimo_sorteio"
7) "resultado:15-04-2015:megasena"
8) "resultado:22-04-2015:megasena"

---------------------------------------------

<ip> KEYS "resultado:*-05-2015:megasena"
1) "resultado:03-05-2015:megasena"
2) "resultado:17-05-2015:megasena"
3) "resultado:10-05-2015:megasena"


---------------------------------------------
<ip> KEYS "resultado:1*-05-2015:megasena"
1) "resultado:17-05-2015:megasena"
2) "resultado:10-05-2015:megasena"


---------------------------------------------
// Se quisermos que a lacuna seja preenchida com apenas um caractere, utilizamos o "?" (ponto de interrogação):

<ip> KEYS "resultado:1?-05-2015:megasena"
1) "resultado:17-05-2015:megasena"
2) "resultado:10-05-2015:megasena"

---------------------------------------------
<ip> KEYS "resultado:?3-??-????:megasena"
1) "resultado:03-05-2015:megasena"


---------------------------------------------
<ip>KEYS "resultado:?7-??-????:megasena"
1) "resultado:17-05-2015:megasena"


---------------------------------------------

<ip> KEYS "resultado:?[37]-??-????:megasena"
1) "resultado:03-05-2015:megasena"
2) "resultado:17-05-2015:megasena"



hash

Semelhante a objetos, permite adicionar varios campos a objetos no Redis

Use for:

  • rate milime
  • session cache

Inserir dados

HSET "KEY" "CAMPO" "Values"

HMSET "KEY" "CAMPO1" "Values1" "CAMPO2" "Values2"

ex:

HSET resultado:24-05-2015:megasena "numeros" "13, 17, 19, 25, 28, 32"
HSET resultado:24-05-2015:megasena "ganhadores" 23
HSET resultado:24-05-2015:megasena "numeros" "13, 17, 19, 25, 28, 32" "ganhadores" 23

HSET user:42 nome uniliva idade 26 sexo masculino roupa:inverno casac0 roupa:verao regata roupa:outono short
HSET user:43 nome zumair idade 27 sexo masculino carro logan trabalho marmoreiro


Recuperar valor

- Recupera valor de um campo
HGET "KEY" "CAMPO"

ex:

<ip> HGET resultado:24-05-2015:megasena "numeros"
"13, 17, 19, 25, 28, 32"

<ip> HGET resultado:24-05-2015:megasena "ganhadores"
"23"

- Recupera todos os valores
HGETALL <KEY>

ex:
HGETALL user:42

- Recurepra campos de forma eficiente
HSCAN <key> <index> MATCH <field>

ex:
HSCAN user:42 0 MATCH roupa:*

Deletar valor

HDET "KEY" "CAMPO"

ex:

HDET "resultado:20-01-2020:megasena"
HDET "resultado:10-02-2020:megasena"
HDET "resultado:08-03-2020:megasena"
HDET "resultado:06-04-2020:megasena"
HDET "resultado:06-04-2020:quina"

Incremetar valor dentro do hash

HINCBY <KEY> <CAMPO> <VALOR>
HINCBYFLOAT <KEY> <CAMPO> <VALOR>

ex:
HINCBY user:42 idade 3
HINCBY user:43 idade 3
HINCBYFLOAT user:43 peso 1.5
HINCBY user:43 idade -1

Comuns

Tempo de expiração

  • Para setar um tempo de expiração em segundos
EXPIRE "KEY" <tempo em segundos>

ex

EXPIRE "resultado:06-04-2020:quina" 1800
  • Para setar um tempo de expiração em milessegunos
PEXPIRE "KEY" <tempo em segundos>

ex

PEXPIRE "resultado:06-04-2020:quina" 1800
  • Para remover tempo de expiração
persiste "KEY"

ex

persiste "resultado:06-04-2020:quina"

Ver tempo de expiração reestante

  • Para setar um tempo de expiração em segundos
TTL "KEY" 

ex

TTL "resultado:06-04-2020:quina"
  • Para setar um tempo de expiração em milisegundos
PTTL "KEY" 

ex

PTTL "resultado:06-04-2020:quina"

Incrimentando valor de uma chave

INCR "KEY"
INCRBY "KEY" valor
INCRBYFLOAT "KEY" valor_float

---------------------------------------------
<ip> INCR pagina:/contato:25-05-2015
(integer) 10

<ip> INCR pagina:/contato:25-05-2015
(integer) 11

---------------------------------------------
<ip> INCRBY compras:25-05-2015:valor 15
(integer) 15

<ip> INCRBY compras:25-05-2015:valor 17
(integer) 32

---------------------------------------------

<ip> INCRBYFLOAT compras:25-05-2015:valor 10.50
"42.5"
<ip> INCRBYFLOAT compras:25-05-2015:valor -0.50
"42.0"

Incrimentando valor de uma chave

DECR "KEY"
DECRBY "KEY" valor
DECRBYFLOAT "KEY" valor_float

---------------------------------------------
<ip> DECR pagina:/contato:25-05-2015
(integer) 10

<ip> DECR pagina:/contato:25-05-2015
(integer) 9

---------------------------------------------

<ip> DECRBY compras:25-05-2015:valor 2
(integer) 32

---------------------------------------------

<ip> DECRBYFLOAT compras:25-05-2015:valor 10.50
"42.5"



Bits

Querys

SETBIT "KEY"  "CAMPO" <0 ou 1> // insere
GETBIT "KEY" "CAMPO" // recupera
DELBIT "KEY" "CAMPO" // deleta
BITOP AND "NEW_KEY" "KEY1" "KEY2" // conta os bits com duas chaves com o operador E
BITOP OR "NEW_KEY" "KEY1" OR "KEY2" //conta os bits com duas chaves com o operador OR