Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Obtenha todos os campos e valores da chave de hash usando redis no nó


Você está obtendo um valor porque substitui o valor anterior.
client.hmset("Table1", "Id", "9324324", "ReqNo", "23432", redis.print);

Isso adiciona Id, ReqNo ao objeto de hash Table1.
client.hmset("Table1", "Id", "9324325", "ReqNo", "23432", redis.print);

Isso substitui Id e ReqNo para o objeto de hash Table1. Neste ponto, você tem apenas dois campos no hash.

Na verdade, seu problema vem do fato de você estar tentando mapear um modelo de banco de dados relacional para o Redis. Você não deveria. Com o Redis, é melhor pensar em termos de estruturas de dados e caminhos de acesso.

Você precisa armazenar um objeto de hash por registro. Por exemplo:
HMSET Id:9324324 ReqNo 23432 ... and some other properties ...
HMSET Id:9324325 ReqNo 23432 ... and some other properties ...

Em seguida, você pode usar um conjunto para armazenar os IDs:
SADD Table1 9324324 9324325

Por fim, para recuperar os dados ReqNo associados à coleção Table1:
SORT Table1 BY NOSORT GET # GET Id:*->ReqNo

Se você também quiser pesquisar todos os IDs associados a um determinado ReqNo, precisará de outra estrutura para suportar este caminho de acesso:
SADD ReqNo:23432 9324324 9324325

Assim, você pode obter a lista de IDs do registro 23432 usando:
SMEMBERS ReqNo:23432

Em outras palavras, não tente transpor um modelo relacional:apenas crie suas próprias estruturas de dados suportando seus casos de uso.