Hàm băm Redis rất tốt để lưu trữ dữ liệu phức tạp hơn, giống như bạn đề xuất trong câu hỏi của mình. Tôi sử dụng chúng cho mục đích chính xác - để lưu trữ các đối tượng có nhiều thuộc tính cần được lưu vào bộ nhớ đệm (cụ thể là dữ liệu khoảng không quảng cáo cho một sản phẩm cụ thể trên trang thương mại điện tử). Chắc chắn, tôi có thể sử dụng một chuỗi được nối - nhưng điều đó làm tăng thêm độ phức tạp không cần thiết cho mã khách hàng của tôi và không thể cập nhật một trường riêng lẻ.
Bạn có thể đúng - các hướng dẫn có thể đơn giản là từ trước khi Hashes được giới thiệu. Chúng được thiết kế rõ ràng để lưu trữ các biểu diễn Đối tượng:http://oldblog.antirez.com/post/redis-weekly-update-1.html
Tôi cho rằng một mối quan tâm sẽ là số lượng lệnh Redis phải phục vụ khi một mục mới được chèn vào (n số lệnh, trong đó n là số trường trong Hash) khi so sánh với lệnh SET chuỗi đơn giản. Tôi chưa thấy đây là vấn đề trên một dịch vụ truy cập Redis khoảng 1 triệu lần mỗi ngày. Đối với tôi, việc sử dụng đúng cấu trúc dữ liệu quan trọng hơn là tác động không đáng kể đến hiệu suất.
(Ngoài ra, vui lòng xem nhận xét của tôi về Redis Sets so với Redis Strings - Tôi nghĩ câu hỏi của bạn đang đề cập đến Strings nhưng hãy sửa cho tôi nếu tôi sai!)