1. 程式人生 > >redis分頁查詢理解

redis分頁查詢理解

來看 比較 set 區間 per 分頁查詢 clas sorted erp

偶然在代碼中發現一個接口,接口定義說是分頁查詢,但邏輯實現是Redis。不太理解,Redis怎麽分頁?後來看到一篇文章,然後了解了。

1、Zrevrange實現

通過SortedSetzrevrange topicId (page-1)×10 (page-1)×10+perPage指令可以實現分頁功能。

Redis Zrevrange 命令 - 返回有序集中指定區間內的成員,通過索引,分數從高到底。
參考:Redis Zrevrange 命令_返回有序集中指定區間內的成員,通過索引,分數從高到底

註:Zrevrange 命令後面的命令值就是索引值。所以不會有問題。

2、Zrevrangebyscore命令實現

另外,我們的代碼中使用的是Zrevrangebyscore命令。

這個命令應該只保證每頁範圍一致,做到不遺漏數據,但不保證每頁數據總數一定。

一般不適用於傳統每頁多少條數據的分頁方式,比較適合於瀑布流或者評論那種動態加載數據的方式。

註:Zrevrangebyscore 命令後面的命令值就是分數值。所以有數據總數不一致情況。

疑問:為什麽我們的代碼中要使用Zrevrangebyscore命令?感覺沒什麽作用呀。

3、參考:

  1. 在 Redis 中進行分頁排序查詢 | NiuNiu‘s blog
    http://liu-xin.me/2015/11/17/%E5%9C%A8Redis%E4%B8%AD%E8%BF%9B%E8%A1%8C%E5%88%86%E9%A1%B5%E6%8E%92%E5%BA%8F%E6%9F%A5%E8%AF%A2/

redis分頁查詢理解