Bạn đang nhận được một giá trị vì bạn ghi đè giá trị trước đó.
client.hmset("Table1", "Id", "9324324", "ReqNo", "23432", redis.print);
Điều này thêm Id, ReqNo vào đối tượng băm Table1.
client.hmset("Table1", "Id", "9324325", "ReqNo", "23432", redis.print);
Điều này ghi đè Id và ReqNo cho đối tượng băm Table1. Tại thời điểm này, bạn chỉ có hai trường trong hàm băm.
Trên thực tế, vấn đề của bạn xuất phát từ việc bạn đang cố gắng ánh xạ một mô hình cơ sở dữ liệu quan hệ với Redis. Bạn không nên. Với Redis, tốt hơn là bạn nên suy nghĩ về cấu trúc dữ liệu và đường dẫn truy cập.
Bạn cần lưu trữ một đối tượng băm cho mỗi bản ghi. Ví dụ:
HMSET Id:9324324 ReqNo 23432 ... and some other properties ...
HMSET Id:9324325 ReqNo 23432 ... and some other properties ...
Sau đó, bạn có thể sử dụng một bộ để lưu trữ các ID:
SADD Table1 9324324 9324325
Cuối cùng để truy xuất dữ liệu ReqNo được liên kết với bộ sưu tập Table1:
SORT Table1 BY NOSORT GET # GET Id:*->ReqNo
Nếu bạn cũng muốn tìm kiếm tất cả các ID được liên kết với một ReqNo nhất định, thì bạn cần một cấu trúc khác để hỗ trợ đường dẫn truy cập này:
SADD ReqNo:23432 9324324 9324325
Vì vậy, bạn có thể lấy danh sách ID cho bản ghi 23432 bằng cách sử dụng:
SMEMBERS ReqNo:23432
Nói cách khác, đừng cố chuyển đổi mô hình quan hệ:chỉ cần tạo cấu trúc dữ liệu của riêng bạn hỗ trợ các trường hợp sử dụng của bạn.