sql >> Database >  >> NoSQL >> Redis

Haal alle velden en waarden van de hash-sleutel op met redis in node

U krijgt één waarde omdat u de vorige waarde overschrijft.

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

Dit voegt Id, ReqNo toe aan het Table1 hash-object.

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

Dit heeft voorrang op Id en ReqNo voor het hash-object Table1. Op dit moment heb je slechts twee velden in de hash.

Eigenlijk komt uw probleem voort uit het feit dat u een relationeel databasemodel aan Redis probeert toe te wijzen. Je zou niet. Met Redis kun je beter denken in datastructuren en toegangspaden.

U moet één hash-object per record opslaan. Bijvoorbeeld:

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

Vervolgens kunt u een set gebruiken om de ID's op te slaan:

SADD Table1 9324324 9324325

Eindelijk om de ReqNo-gegevens op te halen die zijn gekoppeld aan de Table1-verzameling:

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

Als je ook wilt zoeken naar alle ID's die bij een bepaald ReqNo horen, dan heb je een andere structuur nodig om dit toegangspad te ondersteunen:

SADD ReqNo:23432 9324324 9324325

U kunt dus de lijst met ID's voor record 23432 verkrijgen door:

SMEMBERS ReqNo:23432

Met andere woorden, probeer geen relationeel model te transponeren:maak gewoon uw eigen datastructuren die uw gebruiksscenario's ondersteunen.




  1. Mongoimport van JSON-bestand

  2. Waarom kan mijn Redis Lua-script de sleutels op verschillende Redis Cluster-knooppunten niet atomair bijwerken?

  3. Serialiseer een klas op twee verschillende manieren met Jackson

  4. verwijder _id van mongo resultaat