Omet navegació

2.3.2 - Keys

Ara anem a veure comandos que ens permeten treballar amb les claus, per a buscar-les, veure si existeixen, etc. No importarà el tipus de les claus (de moment només hem treballat amb claus de tipus String, però si ja en tinguérem dels altres tipus també es veurien afectades). En cap cas d'aquestos comandos accedirem al valor de les claus.

La llista de comandos de claus que veurem és:

keys  ,  exists  ,  del  ,  type  ,  rename  ,  renamenx  ,  expire  ,  pexpire  ,  ttl  ,  pttl  ,  persist

KEYS

Sintaxi

keys patró

Torna totes les claus que coincideixen amb el patró. En el patró podem posar caràcters comodí:

  • * : equival a 0 o més caràcters. Per exemple "Mar*a" podria tornar "Mara", "Maria", "Marta", "Margarita", ...
  • ? : equival exactament a un caràcter. Per exemple "Mar?a" podria tornar "Maria" o "Marta",  però no "Mara", "Margarita", ...
  • [ab] : serà cert si en el lloc corresponent hi ha un dels caràcters especificats entre els claudàtors. Per exemple "Mar[it]a" podria tornar "Maria" o "Marta", però no "Marga"

Per a tornar totes les claus utilitzarem keys *

127.0.0.1:6379> keys *
 1) "mes3"
 2) "salutacio"
 3) "pi"
 4) "clau_4"
 5) "compt2"
 6) "mes6"
 7) "mes1"
 8) "mes4"
 9) "clau_1"
10) "compt3"
11) "quatre"
12) "mes7"
13) "mes2"
14) "mes5"
15) "compt1"
16) "clau_2"
17) "text"

127.0.0.1:6379> keys mes?
1) "mes5"
2) "mes3"
3) "mes7"
4) "mes2"
5) "mes6"
6) "mes4"
7) "mes1"

127.0.0.1:6379> keys c*
1) "clau_4"
2) "compt2"
3) "clau_1"
4) "compt3"
5) "compt1"
6) "clau_2"

127.0.0.1:6379> keys mes[125]
1) "mes5"
2) "mes2"
3) "mes1"

Nota

L'ordre en el qual es mostraran les claus no té per què ser igual per a tots nosaltres. Él més normal és que cadascú de nosaltres tinga un ordre diferent. Açò té a veure amb els conjunts (set), un tipus de dades que veurem més avant.

EXISTS

Sintaxi

exists clau

Torna 1 si la clau existeix, i 0 si no existeix. No importa de quin tipus siga la clau.

127.0.0.1:6379> exists clau_1
(integer) 1
127.0.0.1:6379> exists clau_25
(integer) 0

DEL

Sintaxi

del clau1 clau2 clauN

Elimina la clau o claus especificades. Si posem més d'una clau i alguna no existeix, la ignorarà i sí que esborrarà les altres.

127.0.0.1:6379> del compt2
(integer) 1
127.0.0.1:6379> del mes6 mes7 mes8 mes9
(integer) 2

Observeu que ens indica quantes claus ha esborrat. En el primer exemple ha esborrat la clau especificada, i en el segon diu que ha esborrat 2, que seran mes6 i mes7, ja que mes8 i mes9 no existien.

TYPE

Sintaxi

type clau

Torna el tipus de la clau especificada. Els valors possibles són:

  • string
  • hash
  • list
  • set
  • zset (conjunt ordenat)

Exemples

127.0.0.1:6379> type clau_1
string

RENAME

Sintaxi

rename clau novaclau

Canvia el nom de la clau a la clau nova, conservant el valor. Dóna error si la clau antiga no existeix. Si la clau nova ja existia reemplaçarà el seu valor.

Exemples

127.0.0.1:6379> get salutacio
"Hola. Com va?"
127.0.0.1:6379> rename salutacio saludar
OK
127.0.0.1:6379> get salutacio
(nil)
127.0.0.1:6379> get saludar
"Hola. Com va?"
127.0.0.1:6379> rename clau_22 clau_23
(error) ERR no such key

RENAMENX

Sintaxi

renamenx clau novaclau

Igual que l'anterior però únicament si la clau nova no existia. Si ja existia no fa res (tornant 0 per a indicar-h0).

Exemples

127.0.0.1:6379> renamenx compt1 compt3
(integer) 0
127.0.0.1:6379> get compt1
"9"

Estem suposant que la clau compt3 ja existeix

EXPIRE

Sintaxi

expire clau segons

Assigna com a temps d'expiració de la clau els segons especificats. Si ja tenia temps d'expiració, el modifica posant-li aquest valor especificat.

En cas que a una clau amb temps d'expiració li canviem el nom amb RENAME, continuarà amb temps d'expiració que li quedava.

PEXPIRE

Sintaxi

pexpire clau milisegons

El mateix però en milisegons

TTL

Sintaxi

ttl clau

Torna el temps de vida (fins l'expiració) d'una clau. Si la clau no té temps d'expiració, torna -1.

Exemples

127.0.0.1:6379> expire compt3 10
(integer) 1
127.0.0.1:6379> ttl compt3
(integer) 6
127.0.0.1:6379> ttl compt3
(integer) 3
127.0.0.1:6379> ttl compt3
(integer) 0
127.0.0.1:6379> get compt3
(nil)

PTTL

Sintaxi

pttl clau

Igual que l'anterior, però ens torna el temps en milisegons.

PERSIST

Sintaxi

persist clau

Elimina el temps d'expiració d'una clau, si és que en tenia. Ara la clau no expirarà mai.

Exemples

127.0.0.1:6379> expire compt1 20
(integer) 1
127.0.0.1:6379> ttl compt1
(integer) 12
127.0.0.1:6379> ttl compt1
(integer) 7
127.0.0.1:6379> persist compt1
(integer) 1
127.0.0.1:6379> ttl compt1
(integer) -1
127.0.0.1:6379> get compt1
"9"