redis分页查询理解
Posted 不无聊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis分页查询理解相关的知识,希望对你有一定的参考价值。
偶然在代码中发现一个接口,接口定义说是分页查询,但逻辑实现是Redis。不太理解,Redis怎么分页?后来看到一篇文章,然后了解了。
1、Zrevrange实现
通过SortedSet的zrevrange topicId (page-1)×10 (page-1)×10+perPage指令可以实现分页功能。
Redis Zrevrange 命令 - 返回有序集中指定区间内的成员,通过索引,分数从高到底。
参考:Redis Zrevrange 命令_返回有序集中指定区间内的成员,通过索引,分数从高到底
注:Zrevrange 命令后面的命令值就是索引值。所以不会有问题。
2、Zrevrangebyscore命令实现
另外,我们的代码中使用的是Zrevrangebyscore命令。
这个命令应该只保证每页范围一致,做到不遗漏数据,但不保证每页数据总数一定。
一般不适用于传统每页多少条数据的分页方式,比较适合于瀑布流或者评论那种动态加载数据的方式。
注:Zrevrangebyscore 命令后面的命令值就是分数值。所以有数据总数不一致情况。
疑问:为什么我们的代码中要使用Zrevrangebyscore命令?感觉没什么作用呀。
3、参考:
- 在 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 中进行分页排序查询 | 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分页查询理解的主要内容,如果未能解决你的问题,请参考以下文章