Omet navegació

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

SADD

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

SMEMBERS

Sintaxi

smembers clau

Torna tots els valors del conjunt. Si la clau no existeix tornarà un conjunt buit. Recordeu que l'ordre dels elements no és predecible

Exemples

127.0.0.1:6379> smembers colors
1) "groc"
2) "verd"
3) "roig"
4) "blau"

SISMEMBER

Sintaxi

sismember clau valor

Comprova si el valor està en el conjunt, tornant 1 en cas afirmatiu i 0 en cas negatiu.

Exemples

127.0.0.1:6379> sismember colors verd
(integer) 1

127.0.0.1:6379> sismember colors negre
(integer) 0

SCARD

Sintaxi

sard clau

Torna la cardinalitat, és a dir, el número d'elements del conjunt en l'actualitat.

Exemples

127.0.0.1:6379> scard colors
(integer) 4

SREM

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"

SPOP

Sintaxi

spop clau

Torna i elimina un valor aleatori del conjunt. Recordeu que a més de tornar-lo, l'elimina del conjunt.

Exemples

127.0.0.1:6379> smembers colors
1) "groc"
2) "roig"
3) "blau"

127.0.0.1:6379> spop colors
"groc"

127.0.0.1:6379> smembers colors
1) "roig"
2) "blau"

SRANDMEMBER

Sintaxi

srandmember clau

Molt paregut a l'anterior. Torna un valor aleatori del conjunt, però en aquesta ocasió no l'elimina del conjunt.

Exemples

127.0.0.1:6379> srandmember colors
"blau"

127.0.0.1:6379> smembers colors
1) "roig"
2) "blau"

SUNION

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"

SUNIONSTORE

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"

SDIFF

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"

SDIFFSTORE

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"

SINTER

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"

SINTERSTORE

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"

SMOVE

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"