Tôi đã tự hỏi những lợi ích của việc sử dụng ID người dùng thay vì chỉ sử dụng tên người dùng duy nhất cho các khóa.Tên người dùng hoặc ID cho các khóa trong Redis
- dùng: USERNAME => {mật khẩu: HASH, tuổi: 45}
- sử dụng: 0 => {username: USERNAME, mật khẩu: HASH, tuổi: 45}
Lưu ý rằng tôi muốn tìm kiếm người dùng theo tên, do đó yêu cầu tập hợp khóa-giá trị thứ hai để liên kết tên người dùng thành ID.
Cho rằng mỗi tên người dùng là duy nhất và phải là chữ số và có bất kỳ lý do cụ thể nào tại sao nó có thể có lợi khi sử dụng hệ thống ID.
Lý do chính tôi hỏi điều này là vì tôi chủ yếu sử dụng ID khi chúng giảm thời gian tra cứu trong cơ sở dữ liệu của tôi, đặc biệt khi cơ sở dữ liệu được chuẩn hóa theo một cách nào đó. Nhưng Redis không nhận được lợi ích này và vì vậy tôi tự hỏi lý do nào khác có thể là sử dụng ID người dùng thay vì chỉ tên người dùng.
Nhờ sự giúp đỡ,
Pluckerpluck
tái bút: Do cách xử lý Redis băm Tôi thực sự không chắc chắn về sự khác biệt bộ nhớ giữa hai phương pháp để thông tin về điều này có thể là tốt, mặc dù tôi có thể đi và kiểm tra bản thân mình sau này.
Cảm ơn bạn đã chỉ ra kịch bản đó. Chỉ là một câu hỏi nhanh: Nếu tôi sử dụng ID. Sau đó tôi sẽ yêu cầu một mối quan hệ tên người dùng-id để cho phép tìm kiếm tên người dùng. Bạn có nghĩ rằng một tập hợp được sắp xếp (xếp hạng là id) sẽ là một cách tốt để làm điều đó? Hoặc thay vào đó là một Hash? – Pluckerpluck
Hash là tốt hơn vì hai lý do - a) Nó sử dụng ít bộ nhớ hơn một Tập hợp Sắp xếp, và b) Không có thứ tự được xác định của người dùng, do đó khái niệm không có ý nghĩa khi sử dụng tập hợp đã sắp xếp. –
Tôi sẽ sử dụng hàm băm để lập chỉ mục tên người dùng. Chúng nhỏ hơn nhiều so với zset trong bộ nhớ. Sử dụng tập hợp zset sẽ chỉ hữu ích nếu bạn phải hỗ trợ các truy vấn phạm vi trên tên ... –