在实际业务中我们会将一些热数据缓存到redis里面,这时候数据量比较大的话,我们就要对这些热数据进行分页,分页的方式有2种:

第一:从redis拿出所有数据后,再做内存分页(不推荐),热点数据小的时候可以这样做,性能相差不是很大,但是当数据量大的时候,分页期间就会占用大量内存,或撑爆;

第二:基于redis的数据结构做缓存分页,这里又分2种

①:基于redis的list数据结构,直接通过list的数据结构,用range方法可以进行分页,在数据量大的时候,性能也很可观,但是当存在接口高并发访问时,这个list可能会无限延长,且里面的数据会存在很多重复,这就会影响到正常的业务(不是很推荐);

②:基于redis的ZSet数据结构,通过Zset这个有序集合我们也可以做分页,同样也是用range方法,但是这里比较麻烦的是在初始化数据的时候Zset必须存放TypedTuple类型的数据,这个类型是一个value和score的键值对,具体可以查百度,这个score的生成比较麻烦我这边测试时用的是当前数据在这个list的位置,然后Zset是根据这个score值来排序的,默认是从小到大;用这个的好处是,即使在高并发情况下Zset中也不会存在重复数据从而影响正常的业务;而且分页效率也和list结构差不多;

③:用hash和Zset来一起实现;这个是问了一个朋友和得知的,Zset中存储有序的id字段,通过分页后拿到id,然后再用id去hash中取,感觉应该效率相差不大的,只是中间多了层从hash结构取,还需要维护又一个hash;(为何这样做我也不清楚);

贴一张我测试list和ZSet的结果图

java 缓存分页_基于redis做缓存分页相关推荐

  1. 9.redis 做缓存

    全网最新相关内容 标题-链接 发布日期 简介 来源 轻松理解redis做缓存的流程_小浩丶的博客-CSDN博客_redis ... 2022-4-5 22:59:03 1. 引言 缓存有啥用?降低对数 ...

  2. 如果redis哨兵宕机了怎么办_Spring集成Redis做缓存,Redis宕机时Spring处理的问题

    采用的是Spring自带的缓存管理,使用Redis做缓存,在Spring中配置如下 @Configuration @EnableCaching public class CachingConfig { ...

  3. SpringBoot集成Redis和配置Redis做缓存

    Redis介绍 Redis是一个开源的.高性能的.基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求,直观的存储结构使得通过程序交互十分简单. Redis数据库中所有 ...

  4. 同程旅行王晓波:同程凤凰缓存系统在基于 Redis 方面的设计与实践(上篇)

    王晓波 同程旅行机票事业群 CTO 读完需要 12 分钟 速读仅需 4 分钟 本章和大家分享一下同程凤凰缓存系统在基于 Redis 方面的设计与实践.在本章中除了会列举我们工作过程中遇到各种问题和误区 ...

  5. 使用redis做缓存,遇到Could not return the resource to the pool异常怎么办呐!

    使用redis做缓存,短短几天就遇到两次redis.clients.jedis.exceptions.JedisException: Could not return the resource to ...

  6. springboot整合redis做缓存

    之前的项目中,用到过redis,主要是使用redis做缓存,redis在web开发中使用的场景很多,其中缓存是其中一个很重要的使用场景,之所以用作缓存,得益于redis的读写数据,尤其是在读取数据的时 ...

  7. 为什么用redis做缓存而不是mybatis自带的缓存_如何用Java设计一个本地缓存,涨姿势了...

    最近在看Mybatis的源码,刚好看到缓存这一块,Mybatis提供了一级缓存和二级缓存:一级缓存相对来说比较简单,功能比较齐全的是二级缓存,基本上满足了一个缓存该有的功能. 当然如果拿来和专门的缓存 ...

  8. redis缓存原理与实现_基于Redis实现范围查询的IP库缓存设计方案

    点击上方"码农沉思录"  发现更多精彩我先说下结果.我现在还不敢放线上去测,这是本地测的数据,我4g内存的电脑本地开redis,一次都没写完过全部数据,都是写一半后不是redis挂 ...

  9. 22-08-06 西安 尚医通(03)EasyExcel; Spring Cache 、Redis做缓存

    EasyExcel EasyExcel:一行一行读取到内存 EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单.节省内存著称 POI:java里操作excel,读取.创建excel ...

最新文章

  1. SDP 协议分析 http://www.cnblogs.com/qingquan/archive/2011/08/02/2125585.html
  2. php函数在哪个文件夹下,php删除文件夹及其文件夹下所有文件的函数代码
  3. 在Python中访问字典中的任意元素
  4. 60分钟精通正则表达式
  5. 李开复:我在硅谷看到的最前沿科技趋势
  6. 数字图像处理之归一化方法
  7. Comet OJ(Contest #8)-D菜菜种菜【树状数组,指针】
  8. arm-linux-ld segment fault,segment fault 定位 与 远程 gdb
  9. 1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(域名备案)
  10. SpringCloud(三) Eureka之服务注册发现以及实现工程间调用
  11. 好记心不如烂笔头之JQuery学习,第四章
  12. 代理设置(wget/yum)
  13. mysql损坏打不开_mac系统上 MySQL Workbench意外退出,再也打不开
  14. Cadence画PCB的傻瓜式教程
  15. 打印机外接无线服务器,打印机配置外接网卡实现网络打印,请问怎样设置,越祥细越好,很急希望多帮忙...
  16. 泊松分布和指数分布,包你学会
  17. 视频二维码功能应用与教程(完整版)
  18. 国内主要Android应用市场包名大全
  19. Android逆向-实战so分析-某洲_v3.5.8_unidbg学习
  20. 为你的网站添加 htpps

热门文章

  1. 给SAP Spartacus B2B list增加用户提示信息
  2. :focus-within的冒泡触发
  3. 外企工作必备英语日积月累 -2020年10月26日,星期一
  4. cannot find any entry in order attachment link
  5. SAP UI5 local sandbox bootstrap的执行细节
  6. SAP Cloud Connector里点击Check按钮的可达性roundtrip实现
  7. Eclipse里PHP built-in server在操作系统中的实际位置
  8. ABAP maintenance view event handling
  9. Spring component detection logic
  10. SAP gateway 后台OData model data查看工具