2.2.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.
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) "compt3"
2) "mes5"
3) "mes3"
4) "comp3"
5) "mes7"
6) "mes2"
7) "mes6"
8) "salutacio"
9) "mes4"
10) "mes1"
11) "clau_1"
12) "compt1"
13) "compt2"
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) "compt3"
2) "comp3"
3) "clau_1"
4) "compt1"
5) "compt2"
127.0.0.1:6379> keys mes[125]
1) "mes5"
2) "mes2"
3) "mes1"
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"
Llicenciat sota la Llicència Creative Commons Reconeixement NoComercial SenseObraDerivada 4.0