2.3.3 - Hash
Ja havíem comentat que el tipus Hash és una espècie de registre, amb subcamps (en realitat hauríem de dir sub-claus). Pot tenir qualsevol número de subcamps que seran de tipus String.
Redis és molt eficient en quant a l'espai que ocupen els Hash, i sobretot en el temps de recuperació de les dades.
Els comandos que vam veure per al String no es poden aplicar al Hash. Tanmateix els comandos del Hash són molt similars a aquells, començant sempre per H.
Veurem els següents comandos:
hset , hget , hgetall , hdel , hkeys , hvals , hmget , hmset , hexists , hsetnx , hincrby
Sintaxi
hset clau camp valor
Assigna al camp especificat de la clau especificada el valor especificat. Si el valor consta de més d'una paraula, haurà d'anar entre cometes dobles.
Si la clau no existia, la crearà, i si ja existia, senzillament afegirà el camp. I si d'aquesta clau ja existia el camp, modificarà el seu valor.
Evidentment, en claus diferents poden haver camps amb els mateixos noms.
Exemples
127.0.0.1:6379> hset empleat_1 nom Andreu
(integer) 1
127.0.0.1:6379> hset empleat_1 departament 10
(integer) 1
127.0.0.1:6379> hset empleat_1 sou 1000.0
(integer) 1
127.0.0.1:6379> hset empleat_2 nom Berta
(integer) 1
127.0.0.1:6379> hset empleat_2 sou 1500.0
(integer) 1
Sintaxi
hget clau camp
Torna el valor del camp de la clau. Si no existia (el camp o la clau) torna nil. Només podem especificar un camp.
Exemples
127.0.0.1:6379> hget empleat_1 nom
"Andreu"
127.0.0.1:6379> hget empleat_1 departament
"10"
127.0.0.1:6379> hget empleat_2 nom
"Berta"
127.0.0.1:6379> hget empleat_2 departament
(nil)
Sintaxi
hgetall clau
Torna una llista amb tots els camps i els seus valors de la clau. La seqüència és: camp1 valor1 camp2 valor2 ... Però no ens podem fiar que l'ordre siga el mateix ordre que quan el vam definir.
Exemples
127.0.0.1:6379> hgetall empleat_1
1) "nom"
2) "Andreu"
3) "departament"
4) "10"
5) "sou"
6) "1000.0"
Altres Comandos
També existeixen altres comandos, de funcionament com cabria esperar (els hem vist tots en el cas de String):
Llicenciat sota la Llicència Creative Commons Reconeixement SenseObraDerivada 4.0