Redis
 sql >> Database >  >> NoSQL >> Redis

Ottieni tutti i campi e i valori della chiave hash usando redis in node

Stai ottenendo un valore perché sostituisci il valore precedente.

client.hmset("Table1", "Id", "9324324", "ReqNo", "23432", redis.print);

Questo aggiunge Id, ReqNo all'oggetto hash Table1.

client.hmset("Table1", "Id", "9324325", "ReqNo", "23432", redis.print);

Questo sostituisce Id e ReqNo per l'oggetto hash Table1. A questo punto, hai solo due campi nell'hash.

In realtà, il tuo problema deriva dal fatto che stai cercando di mappare un modello di database relazionale su Redis. Non dovresti. Con Redis è meglio pensare in termini di strutture dati e percorsi di accesso.

Devi memorizzare un oggetto hash per record. Ad esempio:

HMSET Id:9324324 ReqNo 23432 ... and some other properties ...
HMSET Id:9324325 ReqNo 23432 ... and some other properties ...

Quindi, puoi utilizzare un set per memorizzare gli ID:

SADD Table1 9324324 9324325

Infine per recuperare i dati ReqNo associati alla raccolta Table1:

SORT Table1 BY NOSORT GET # GET Id:*->ReqNo

Se vuoi cercare anche tutti gli ID che sono associati a un dato ReqNo, allora hai bisogno di un'altra struttura per supportare questo percorso di accesso:

SADD ReqNo:23432 9324324 9324325

Quindi puoi ottenere l'elenco degli ID per il record 23432 utilizzando:

SMEMBERS ReqNo:23432

In altre parole, non cercare di trasporre un modello relazionale:crea semplicemente le tue strutture dati a supporto dei tuoi casi d'uso.