2.3.5 - Set
Els Sets de Redis són conjunts de valors de tipus String no ordenats. Podrem afegir, actualitzar i esborrar aquestos elements de forma còmoda i eficient. No es permetran els valors duplicats.
A més Redis ens ofereix operacions interessants com la unió, intersecció i diferència de conjunts.
Com sempre, els comandos són específics, és a dir no ens valen els de Strings, Hash o List. Tots els comandos comencen per S.
Aquesta és la llista dels que veurem:
sadd , smembers , sismember , scard , srem , spop , srandmember , sunion , sunionstore , sdiff , sdiffstore , sinter , sinterstore , smove
Sintaxi
sadd clau valor1 valor2 valorN
Afegeix els valors al conjunt (creant la clau si és necessari). Recordem que l'ordre no és important, i que no es poden repetir els valors; si intentem introduir un repetit, no donarà error, però no l'introduirà. El comando tornarà el número d'elements que realment s'han afegit.
Exemples
127.0.0.1:6379> sadd colors roig verd blau
(integer) 3
127.0.0.1:6379> sadd colors verd groc
(integer) 1
Sintaxi
srem clau valor1 valor2 valorN
Elimina els valors del conjunt. Si el conjunt es queda buit, eliminarà la clau també. Si algun dels valor no és cap element del conjunt, senzillament s'ignorarà. El comando torna el número d'elements realment eliminat.
Exemples
127.0.0.1:6379> srem colors verd negre
(integer) 1
127.0.0.1:6379> smembers colors
1) "groc"
2) "roig"
3) "blau"
Sintaxi
sunion clau1 clau2 clauN
Torna la unió dels elements dels conjunts especificats. És una unió correcta, és a dir, no es repetirà cap valor.
No modifica cap conjunt, i el resultat únicament es torna, no es guarda en cap lloc de forma permanent.
Exemples
127.0.0.1:6379> smembers colors
1) "roig"
2) "blau"
127.0.0.1:6379> sadd colors1 verd roig groc
(integer) 3
127.0.0.1:6379> smembers colors1
1) "groc"
2) "roig"
3) "verd"
127.0.0.1:6379> sunion colors colors1
1) "verd"
2) "groc"
3) "roig"
4) "blau"
Sintaxi
sunionstore clau_destí clau1 clau2 clauN
Igual que l'anterior, però ara sí que es guarda el resultat de la unió en un conjunt, clau_destí (el primer especificat). Si la clau_destí ja existia, substituirà el contingut.
Exemples
127.0.0.1:6379> smembers colors
1) "roig"
2) "blau"
127.0.0.1:6379> smembers colors1
1) "groc"
2) "roig"
3) "verd"
127.0.0.1:6379> sunionstore colors2 colors colors1
(integer) 4
127.0.0.1:6379> smembers colors2
1) "verd"
2) "groc"
3) "roig"
4) "blau"
Sintaxi
sdiff clau1 clau2 clauN
Torna la diferència dels elements del primer conjunt respecte de la unió de tots els altres. És a dir, torna els elements del primer conjunt que no pertanyen a cap dels altres.
No modifica cap conjunt, i el resultat únicament es torna, no es guarda en cap lloc de forma permanent.
Exemples
127.0.0.1:6379> smembers colors
1) "roig"
2) "blau"
127.0.0.1:6379> smembers colors1
1) "groc"
2) "roig"
3) "verd"
127.0.0.1:6379> sdiff colors1 colors
1) "verd"
2) "groc"
Sintaxi
sdiffstore clau_destí clau1 clau2 clauN
Igual que l'anterior, però ara sí que es guarda el resultat de la diferència en un conjunt, clau_destí (el primer especificat). Si la clau_destí ja existia, substituirà el contingut.
Exemples
127.0.0.1:6379> smembers colors
1) "roig"
2) "blau"
127.0.0.1:6379> smembers colors1
1) "groc"
2) "roig"
3) "verd"
127.0.0.1:6379> sdiffstore colors3 colors1 colors
(integer) 2
127.0.0.1:6379> smembers colors3
1) "verd"
2) "groc"
Sintaxi
sinter clau1 clau2 clauN
Torna la intersecció dels elements dels conjunts. És a dir, torna els elements que pertanyen a tots els conjunts especificats.
No modifica cap conjunt, i el resultat únicament es torna, no es guarda en cap lloc de forma permanent.
Exemples
127.0.0.1:6379> smembers colors
1) "roig"
2) "blau"
127.0.0.1:6379> smembers colors1
1) "groc"
2) "roig"
3) "verd"
127.0.0.1:6379> sinter colors colors1
1) "roig"
Sintaxi
sinterstore clau_destí clau1 clau2 clauN
Igual que l'anterior, però ara sí que es guarda el resultat de la intersecció en un conjunt, clau_destí (el primer especificat). Si la clau_destí ja existia, substituirà el contingut.
Exemples
127.0.0.1:6379> smembers colors
1) "roig"
2) "blau"
127.0.0.1:6379> smembers colors1
1) "groc"
2) "roig"
3) "verd"
127.0.0.1:6379> sinterstore colors4 colors colors1
(integer) 1
127.0.0.1:6379> smembers colors4
1) "roig"
Sintaxi
smove clau_font clau_destí valor
Meneja el valor del conjunt orígen (el primer conjunt) al conjunt destí (el segon). Això suposarà eliminar-lo del primer i afegir-lo al segon. Tornarà 1 si l'ha menejat, i 0 si no l'ha menejat.
Exemples
127.0.0.1:6379> smembers colors
1) "roig"
2) "blau"
127.0.0.1:6379> smembers colors1
1) "groc"
2) "roig"
3) "verd"
127.0.0.1:6379> smove colors1 colors verd
(integer) 1
127.0.0.1:6379> smembers colors
1) "verd"
2) "roig"
3) "blau"
127.0.0.1:6379> smembers colors1
1) "groc"
2) "roig"
Llicenciat sota la Llicència Creative Commons Reconeixement SenseObraDerivada 4.0