您获得了一个值,因为您覆盖了先前的值。
client.hmset("Table1", "Id", "9324324", "ReqNo", "23432", redis.print);
这会将 Id、ReqNo 添加到 Table1 哈希对象。
client.hmset("Table1", "Id", "9324325", "ReqNo", "23432", redis.print);
这会覆盖 Table1 哈希对象的 Id 和 ReqNo。此时,哈希中只有两个字段。
实际上,您的问题来自您尝试将关系数据库模型映射到 Redis 的事实。你不应该。使用 Redis,最好从数据结构和访问路径的角度来考虑。
您需要为每条记录存储一个哈希对象。例如:
HMSET Id:9324324 ReqNo 23432 ... and some other properties ...
HMSET Id:9324325 ReqNo 23432 ... and some other properties ...
然后,您可以使用集合来存储 ID:
SADD Table1 9324324 9324325
最后检索与 Table1 集合关联的 ReqNo 数据:
SORT Table1 BY NOSORT GET # GET Id:*->ReqNo
如果您还想搜索与给定 ReqNo 关联的所有 ID,那么您需要另一个结构来支持此访问路径:
SADD ReqNo:23432 9324324 9324325
因此,您可以使用以下命令获取记录 23432 的 ID 列表:
SMEMBERS ReqNo:23432
换句话说,不要尝试转置关系模型:只需创建自己的数据结构来支持您的用例。