使用Redis的ZSet和List进行分页,两者都可以实现,共同特性相当于截取集合中的一部分,ZSet拥有去重特性,List可能会出现数据重复情况,推荐使用ZSet。

另外说明:使用其他类型就不可以,比如string,这个返回字符串的长度部分。

值得注意的是:要实现ZSet或者List分页,需要将数据循环,每条数据都需要执行一遍插入redis的操作,key可以一样,相当于在集合后再加一条,如果将结果统一放入redis,分页将以外层size去进行分页。

具体方法如下(存数据):

try {//score为排序方式,可以为id,redis中会将数据安装score进行排序,也可以赋个0double score = Double.parseDouble(item.get("id").toString());
//使用redisTemplate操作redis,key为字符串,数据为JSON字符串redisTemplate.opsForZSet().add(key.toString(),JSON.toJSONString(item), score);} catch (NumberFormatException e) {e.printStackTrace();}

在redis中查看存入数据的数据类型:

取数据时,根据传入的currPage和pageSize条件去查询redis:

 String  afgFno = object.getString("afgFno");Long  currentPage = object.getLong("currentPage");Long  pageSize = object.getLong("pageSize");//1 100000代表score的排序氛围值,即从1-100000的范围,也设置限定查询值//1, 100000, (currPage页数-1)*每页显示数量, 每页显示数量);redisData  = redisTemplate.opsForZSet().rangeByScore(afgFno.toString(),1, 100000, (currentPage - 1) * pageSize, pageSize);

使用List(存数据):

redisTemplate.opsForList().rightPush(key.toString(),JSON.toJSONString(item),score);

使用List(取数据):

redisTemplate.opsForList().range(afgFno.toString(),(currentPage - 1) * pageSize, pageSize);

ZSet与List返回结果不一样,可以尝试下,根据实际情况去使用。

这样就实现了使用redis的ZSet和List进行分页查询。

记录一次使用Redis中ZSet和List分页相关推荐

  1. redis ZSet php,redis中zset怎么使用

    Redis中zset是set的一个升级版本,他在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序.可以理解了有两列的mysql表, ...

  2. Redis中ZSet的底层数据结构跳跃表skiplist,你真的了解吗?

    欢迎大家关注我的微信公众号[老周聊架构],Java后端主流技术栈的原理.源码分析.架构以及各种互联网高并发.高性能.高可用的解决方案. 一.前言 老周写这篇文章的初衷是这样的,之前项目中有大量使用 R ...

  3. 基于Redis中 Zset数据类型实现各类高性能排行榜日榜、周榜(附上整合SpringBoot示例代码)

    目录 为什么要使用redis? 日榜.周榜实现方案介绍 热度增加代码参考 日榜获取 周榜获取 为什么要使用redis? 如果使用mysql 要实现排行榜功能,如果使用 mysql或其它关系型数据库 来 ...

  4. redis中zset底层实现原理

    https://www.cnblogs.com/yuanfang0903/p/12165394.html 阅读目录 一.Zset编码的选择 二.ziplist 三.skiplist 四.skiplis ...

  5. zset 怎么get_使用redis的zset实现高效分页查询(附完整代码)

    一.需求 移动端系统里有用户和文章,文章可设置权限对部分用户开放.现要实现的功能是,用户浏览自己能看的最新文章,并可以上滑分页查看. 二.数据库表设计 涉及到的数据库表有:用户表TbUser.文章表T ...

  6. redis中Zset数据类型最全常用命令

    一.引言 今天晚上不加班,不加班,爽翻.不加班就能安安心心继续学习了,继续redis学习哈.今天学习redis五大数据类型最后一个了.上一章学习了Set无序集合,那么有无序集合肯定就会有有序集合了.Z ...

  7. zset中的score_读懂才会用 : 带你见识 Redis 的 zset

    快餐车 本文从代码角度分析Redis 的 zset 结构,希望通过本文掌握如下内容: Redis 中 zset 不是单一结构完成,是跳表和哈希表共同完成 跳表的实现原理,跳表升维全靠随机 跳表中查找. ...

  8. 【Redis之ZSet类型的详解ZSet类型中常用命令的实践】

    Redis之ZSet类型的详解&ZSet类型中常用命令的实践 知识回顾: 通过对Redis中的String的命令做了充分的讲解以及实践学习 通过对Redis中String类型之Bit命令的详解 ...

  9. Redis中的zset原理以及用Java实现跳跃表

    准备工作 先在Redis官网下载最新的稳定版本6.2.按照官网给出的安装指南到Linux服务器上安装. zadd调用过程 redis/src/server.c 文件中定义了所有命令运行要调用的方法.z ...

最新文章

  1. 在Ubuntu 14.04 64bit上安装epub阅读器Sigil 0.8.2
  2. 同样都是调参,为什么人家的神经网络比我牛逼100倍?
  3. 被swoole坑哭的PHP程序员
  4. 同步控制 之“重入锁”
  5. el table怎么获取最后一行_elementUi表格插入额外一行怎么操作
  6. EasyExcel实现文件读取、导出、上传、下载操作
  7. python easy install_Python 安装easy_install详解
  8. 陌生人社会_陌生人之旅
  9. 机器学习接口和代码之 KNN
  10. 369寝室(数组、模拟)
  11. 聊一聊你了解的程序猿是什么样的?
  12. java正则匹配并提取字串
  13. android 8.0 iso6,微信8.0.6更新了什么?IOS系统微信8.0.6版本更新详情一览[多图]
  14. oracle mysql认证考试流程_报考oraclemysql认证的考试流程是哪些
  15. MCSA / Windows Server 2016各版本的功能及比较,安装需求及选项
  16. Misra c规则简介
  17. 苹果电脑系统如何设置成中文
  18. 2019年,会不会是我这一辈子的人生巅峰?
  19. Linux之pstree命令
  20. 三层架构(UI、BLL、DAL)

热门文章

  1. 计算机色彩再现原理,清华大学出版社-图书详情-《计算机色彩原理及应用》
  2. redis安装,redis安装windows服务
  3. 大海捞针 Skia(C++) 第 1 期:Skia 环境搭建
  4. java集成友盟实现推送
  5. vue未登录跳转至登录页面
  6. 热风枪的温度设置(与焊锡有无含铅有关)和使用注意
  7. 细思极恐!使用 AI 控制你的浏览器
  8. 霍营到北土城时间记录
  9. Linux 的体系结构结构
  10. 傅里叶级数推导过程--通俗易懂,强烈推荐!!!