redis分頁查詢理解

來源:互聯網
上載者:User

標籤:evel   適合   blog   排序   指定   level   div   lis   one   

偶然在代碼中發現一個介面,介面定義說是分頁查詢,但邏輯實現是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分頁查詢理解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.