Redis Smembers

Redis Smembers
Redis supporta diversi tipi di dati e strutture di dati. Il set è uno dei più vantaggiosi tra questi. Ti consente di conservare una raccolta di stringhe in forma non ordinata. Una delle pratiche caratteristiche associate ai set è che non sono consentiti elementi ripetuti.

Un set può archiviare più di quattro miliardi di membri unici. Importanti operazioni di set come aggiungere E rimuovere avere una complessità temporale costante, che è molto efficiente. Quando si tenta di aggiungere un elemento esistente a un set, manterrà solo una copia di quell'elemento senza creare un nuovo elemento. Quindi, non è necessario aggiungere controlli duplicati espliciti.

Il comando "Smember"

Ci sono diversi comandi disponibili per operare su set Redis. È sempre utile recuperare tutti gli elementi memorizzati in un set. Di solito, il comando "Smembers" viene utilizzato per recuperare elementi in un set di Redis.

Sintassi

SMARMERS

Ogni set ha una chiave che funge da riferimento per l'array di elementi.

Esempio - Conta le visualizzazioni della pagina da utenti unici

Facciamo un esempio in cui il tuo sito Web deve contare le viste provenienti da utenti unici. Quindi, non si contano sulle viste provenienti dallo stesso ID utente. Possiamo utilizzare un set per mantenere tutti gli utenti unici che visitano il tuo sito Web.

Possiamo usare il comando "SADD" per creare un nuovo set su una chiave specificata e per aggiungere alcuni membri.

SADD Visitorids "Henry001"
Sadd Visitorids "Jackma"
Sadd Visitorids "Singh06"
Sadd Visitorids "Robin"

Ciò creerebbe un set con i "visitatori" chiave con quattro membri, come mostrato da seguito.

Eseguiamo il comando "Smembers" per controllare i membri disponibili nel set identificato dai "visitatori" della chiave.

Produzione:

L'array restituito non contiene alcun ID utente duplicato perché il comando "SADD" non ha permesso ai membri duplicati di entrare. Quindi puoi identificare gli utenti univoci che hanno visitato il tuo sito Web dall'output di comandi sopra.

Possiamo usare il comando "SADD" per aggiungere più membri contemporaneamente senza eseguire ripetutamente lo stesso comando.

SADD NEWVISITORS "Singh06" "Henry001" "Jackma" "Robin"

Produzione:

Lo stesso risultato è dato dal comando "Smembers".

Il comando "Sinter" può essere usato al posto del comando "Smembers". Di solito, il comando "Sinter" restituisce l'intersezione di due set. Ma puoi usarlo passando una chiave. Restituirebbe i membri del set memorizzato nella chiave passata.

Sinter Newvisitor

Produzione:

La performance di comando "Smembers"

Questo comando ha una complessità del tempo lineare che può essere rappresentata come O (N). Significa che quando il conteggio dei membri aumenta, il tempo necessario per restituire la serie di elementi aumenterà.

Il comando "Smembers" su un tipo non set

Di solito, il comando "Smembers" funzionerà solo con i tipi di dati impostati. Solleverà un errore per altri tipi di dati. Creiamo un "hash" come mostrato nel seguente.

Hset myhash id 1 nome divertente

Abbiamo creato un hash chiamato "Myhash". Successivamente, passeremo questa chiave al comando "SMEMBER".

SMARMERS MYHASH

Produzione:

Come previsto, il comando restituisce un messaggio di errore indicando che la chiave non è in possesso di un valore di tipo set. È un hash. Quindi, il comando 'smember' viene terminato con il messaggio di errore sopra. Quindi, questo comando è specifico per impostare i tipi di dati.

Conclusione

Redis viene fornito con diversi tipi di dati integrati. Supporta i set. Un set è una raccolta di stringhe non ordinate. Non memorizza i membri duplicati. Se proviamo a inserire un elemento duplicato in un set, manterrà una sola copia di quel membro. Le operazioni di Redis Set sono molto efficienti. Le operazioni aggiuntive e rimuove hanno una complessità temporale costante. Possiamo usare il comando "Smembers" per restituire tutti i membri memorizzati in un set in una chiave specificata. Questa operazione ha una complessità del tempo lineare ed è ancora molto utile nelle applicazioni del mondo reale.