Redis
 sql >> Base de données >  >> NoSQL >> Redis

Obtenez tous les champs et valeurs de la clé de hachage à l'aide de redis dans le nœud

Vous obtenez une valeur parce que vous remplacez la valeur précédente.

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

Cela ajoute Id, ReqNo à l'objet de hachage Table1.

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

Cela remplace Id et ReqNo pour l'objet de hachage Table1. À ce stade, vous n'avez que deux champs dans le hachage.

En fait, votre problème vient du fait que vous essayez de mapper un modèle de base de données relationnelle sur Redis. Tu ne devrais pas. Avec Redis, mieux vaut penser en termes de structures de données et de chemins d'accès.

Vous devez stocker un objet de hachage par enregistrement. Par exemple :

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

Ensuite, vous pouvez utiliser un ensemble pour stocker les identifiants :

SADD Table1 9324324 9324325

Enfin pour récupérer les données ReqNo associées à la collection Table1 :

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

Si vous souhaitez également rechercher tous les ID associés à un ReqNo donné, vous avez besoin d'une autre structure pour prendre en charge ce chemin d'accès :

SADD ReqNo:23432 9324324 9324325

Ainsi, vous pouvez obtenir la liste des identifiants pour l'enregistrement 23432 en utilisant :

SMEMBERS ReqNo:23432

En d'autres termes, n'essayez pas de transposer un modèle relationnel :créez simplement vos propres structures de données supportant vos cas d'utilisation.