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.