sql >> Base de Datos >  >> NoSQL >> Redis

Obtenga todos los campos y valores de la clave hash usando redis en el nodo

Obtiene un valor porque anula el valor anterior.

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

Esto agrega Id, ReqNo al objeto hash Table1.

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

Esto anula Id y ReqNo para el objeto hash Table1. En este punto, solo tiene dos campos en el hash.

En realidad, su problema proviene del hecho de que está tratando de asignar un modelo de base de datos relacional a Redis. Usted no debe. Con Redis, es mejor pensar en términos de estructuras de datos y rutas de acceso.

Debe almacenar un objeto hash por registro. Por ejemplo:

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

Luego, puede usar un conjunto para almacenar las ID:

SADD Table1 9324324 9324325

Finalmente, para recuperar los datos ReqNo asociados a la colección Table1:

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

Si también desea buscar todos los ID que están asociados a un ReqNo dado, entonces necesita otra estructura para admitir esta ruta de acceso:

SADD ReqNo:23432 9324324 9324325

Entonces puede obtener la lista de ID para el registro 23432 usando:

SMEMBERS ReqNo:23432

En otras palabras, no intente transponer un modelo relacional:simplemente cree sus propias estructuras de datos que respalden sus casos de uso.