Mysql中存在100w条热点数据,Redis中只存储20w条,如何保证Redis中都是热点数据

主要考察如何Redis的数据淘汰策略

  • LFU算法:Least Frequently Used,最不经常使用算法。
  • LRU算法:Least Recently Used,近期最少使用算法。

Redis4.0之后为我们提供了8中淘汰策略,但真正意义上的只有5种。其中针对Random、LRU、LFU提供了两种不同数据范围的策略,一种是volatile针对设置了超时时间的,一种是没有设置超时时间的。具体的,这5种分别是:

  1. noeviction:这种策略表示不进行数据淘汰,同时也是Redis的默认淘汰策略,当缓存写满时,Redis就不再提供写服务了,写请求直接返回失败。
  2. Random:随机策略分为两种,一种是volatile,这种是设置了过期时间的数据集,另外一种是allKeys,这种是包含了所有的数据,当我们缓存满了的时候,这种策略就会在我们的数据集中进行随机删除。
  3. volatile-ttl:在设置了超时时间的数据集中,按照过期时间的先后顺序进行删除,越早过期先被删除。
  4. LRU:volatile,在设置了超时时间的数据集中,优先删除最近最少使用的,allKeys对所有的数据中优先删除最近最少使用的。(缺陷:5分钟,如果前4分钟的热点数据请求了一万次,而最后另外一个热点数据请求只有一千次,理应保留前4分钟请求一万次的热点数据,但最终会保留最后1分钟的数据)
  5. LFU:在LRU基础上增加了请求数统计,这样能更准确的代表我们的热点数据

此时回看我们的问题,我们需要的策略就是LFU算法,而使用volatile还是allkeys就需要根据相应的场景进行分析了。

Redis如何存储热点数据相关推荐

  1. SpringBoot+Redis(实现处理热点数据)

    一.什么是热点数据 在很短的时间内,许多数据要被多次查询(像双十一购物,查询商品) 二.为什么要使用redis redis是非关系型数据库,Redis将数据存储在内存上,避免了频繁的IO操作 三.场景 ...

  2. redis存储树结构数据

    本文主要讲解两方面内容:1.redis如何存储树结构数据.2.java操作redis时选取哪种序列化器. 1. redis如何存储树结构数据 先抛出结论,树结构数据在redis中的存储形式如下: 1. ...

  3. java如何实现redis分片存储_AOP与Redis缓存实现

    1. AOP实现缓存业务 1.1 业务需求 1). 自定义注解 @CacheFind(key="xxx",second=-1) 2). 使用自定义注解 标识业务方法 将方法的返回值 ...

  4. redis 什么是冷数据_redis一般存储什么类型数据

    Redis是一个开源的底层使用C语言编写的key-value存储数据库.可用于缓存.事件发布订阅.高速队列等场景.而且支持丰富的数据类型:string(字符串).hash(哈希).list(列表).s ...

  5. redis 热点数据 缓存

    Redis 是什么 Redis 的五种基本类型 STRING LIST SET HASH ZSET 键的过期时间 发布与订阅 事务 持久化 快照持久化 AOF 持久化 复制 从服务器连接主服务器的过程 ...

  6. flask中的CBV , flask-session在redis中存储session , WTForms数据验证 , 偏函数 , 对象里的一些小知识...

    flask中的CBV , flask-session在redis中存储session , WTForms数据验证 , 偏函数 , 对象里的一些小知识 flask中的CBV写法 后端代码 # 导入vie ...

  7. Redis(案例二:高并发商品首页热点数据开发实战)

    热点数据 经常会被查询,但是不经常被修改或者删除的数据 ⾸⻚-详情⻚ 链路逻辑 检查缓存是否有 缓存不存在则查询数据库 查询结果放到缓存,设置过期时间 下次访问则命中缓存 代码实现 pojo -热点视 ...

  8. 如何保证redis数据都是热点数据

    mySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据? 1.限定 Redis 占用的内存,Redis 会根据自身数据淘汰策略,加载热数据到内存. 所以,计 ...

  9. mysql怎么保证热点数据_MySQL里有2000w数据,redis中只存20w数据,如何保证redis中数据都是热点数据...

    计算20w的热点数据占据内存的大小.然后在Redis中,配置最大内存容量,在redis.conf文件maxmemory 标签中配置. 当redis内存数据大小上升到一定大小的时候,就会施行数据淘汰策略 ...

最新文章

  1. pyspatialite
  2. python中格式符的应用%s,%d,%f以及format()的实例以及输出格式
  3. 【计算机网络】应用层 : 总结 ( 网络应用模型 C/S P2P | 域名解析 DNS | 文件传输协议 FTP | 电子邮件 | 万维网 与 HTTP ) ★★★
  4. 从零入门 Serverless | 架构的演进
  5. SQL Server资源管理之内存管理篇(上)
  6. 如何将Java应用程序置于Apache HTTP服务器之后
  7. Arthas实践--获取到Spring Context,然后为所欲为
  8. RHEL6 grub修复
  9. 信息学奥赛一本通 1066:满足条件的数累加 | OpenJudge NOI 1.5 10
  10. MFC 程序来龙去脉
  11. mysql 5.5主从同步_MySQL 5.5主从同步
  12. java垃圾回收机制简介
  13. OK插件安装常见问题集锦(PowerPoint版)|OneKeyTools Lite安装说明
  14. 并行与分布式计算复习大纲 华南农业大学
  15. Win10不进行操作很快自动睡眠、休眠的解决方法
  16. php ean13,php生成EAN
  17. 白炽灯和led哪个护眼?分享真正适合孩子的护眼台灯
  18. uni-app相机组件实现自定义二维码扫描
  19. mysql多实例部署
  20. 问题 D: 神奇密码锁

热门文章

  1. 2-氟丙二酸二乙酯,cas685-88-1等含氟试剂,氟化试剂
  2. python api文档管理工具_开源的api文档管理系统
  3. 微信公众平台开发(PHP)(五) 天气预报功能开发
  4. Power Automate:发送带有SharePoint列表附件的邮件
  5. c语言length函数,length_length什么意思
  6. linux常用指令介绍_软件包管理_VIM编辑器的使用_用户和组账户管理_文件权限管理
  7. 以色列通过空袭回应哈马斯的黑客攻击
  8. 1992年的鹿鼎记台词,嘛的,哥20年后才看到
  9. 【数学概念】充分必要条件(充分性、必要性)的简单辨析
  10. win10增加matlab虚拟内存,详细教你win10如何增加虚拟内存