Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Lọc các phần tử trong Redis

Làm cách nào để bạn triển khai lược đồ cuối cùng trong Redis? Có thể không?

Redis là lược đồ ít hơn . Hãy gọi những gì bạn cần là phương pháp lưu trữ dữ liệu .

Một phương pháp khả thi là sử dụng HSET hoặc HMSET để thêm các đối tượng JSON này theo id, trong đó id của chúng là khóa và văn bản JSON là giá trị . Chúng tôi sẽ gọi hàm băm này là users:byid .

Đây là phần đầu tiên của vấn đề. Bây giờ bạn có thể lấy các đối tượng theo id .

Bây giờ, vấn đề tiếp theo là bạn muốn truy xuất các đối tượng trong một phạm vi mà bạn gọi là xếp hạng . Để có được điều này, bạn cần lưu trữ các đối tượng của mình trong một tập hợp được sắp xếp bằng cách sử dụng ZADD . Các nhóm được sắp xếp được sắp xếp theo điểm số và các mục được lưu trữ với điểm số . Nó có vẻ hoàn hảo cho trường hợp sử dụng của bạn!

Trên thực tế, bạn sẽ lưu trữ id đối tượng trong toàn bộ tập hợp được sắp xếp:

Người dùng zadd users:byranking 10 1 5 2

... trong đó 10 là điểm số (tức là giá trị xếp hạng thực tế của bạn) và 1 là id và như vậy.

Vì vậy, làm thế nào bạn lọc các mục theo xếp hạng? Sử dụng ZRANGEBYSCORE :

  • Bằng cách xếp hạng từ 0 đến 10, không bao gồm 10. Người dùng zrangebyscore users:byranking 0 (10
  • Bằng cách xếp hạng từ 0 đến 10, bao gồm 10. Người dùng zrangebyscore users:byranking 0 10

Cái gọi là ZRANGEBYSCORE sẽ cung cấp cho bạn id của những người dùng được truy xuất. Làm thế nào bạn nhận được văn bản JSON của họ? Sử dụng HMGET :

 HMGET users:byid 1 2

... sẽ nhận được cả người dùng có id 12 , nếu 10 xếp hạng là bao gồm.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lệnh Redis để lấy tất cả các phím có sẵn?

  2. Khởi động mùa xuân + redis

  3. Làm thế nào để truyền dữ liệu giữa nhiều Lua State (đa luồng)?

  4. Sử dụng Redis để tạo ID duy nhất từ ​​một phạm vi giới hạn

  5. Redis Keyspace Notifications với flushdb