Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Membalikkan Pagination Melalui Redis Sorted Set

Sangat sepele untuk mendapatkan peringkat untuk suatu elemen, dan kemudian bekerja berdasarkan indeks. Dengan asumsi bahwa satu-satunya input yang tersedia untuk aplikasi Anda adalah batas skor awal 72 dan 46, Anda dapat melakukan ini:

redis 127.0.0.1:6379> ZREVRANGEBYSCORE mySortedSet 72 (46
1) "G"
2) "F"
3) "E"
redis 127.0.0.1:6379> ZREVRANK mySortedSet G
(integer) 4
redis 127.0.0.1:6379> ZREVRANGE mySortedSet 1 3
1) "J"
2) "I"
3) "H"
redis 127.0.0.1:6379> 

Satu-satunya panggilan tambahan adalah O(log(N)) ZREVRANK panggilan. Dari sana, sedikit matematika sisi klien untuk mendapatkan indeks baru untuk rentang yang Anda minati, dan ZREVRANGE untuk mendapatkan nilai yang Anda inginkan.

Saya menguji ini di Redis 2.6rc5, tetapi seharusnya berfungsi pada versi apa pun di atas 2.0.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis / Node.js - 2 klien (1 pub/sub) menyebabkan masalah dengan penulisan

  2. Apakah Azure mendukung hal-hal seperti mongodb dan redis?

  3. Kontrol masalah aliran dengan node/redis dan panggilan balik?

  4. Langkah pertama dengan Redis

  5. Berapa ukuran nilai maksimum yang dapat Anda simpan di redis?