1、Redis 过期策略

Redis 过期策略用于处理设置了缓存时间的数据,使用定时扫描和惰性删除机制删除到期的缓存数据。

Redis 将设置了过期时间的 key 保存在一个独立的字典中,定时扫描就是针对这个字典,删除到期的 key。

定时扫描的默认设置就是每秒进行10次扫描,从字典中随机选择20个 key,将其中到期的 key 删除,如果到期的 key 超过四分之一,则继续扫描,删除,为了避免迭代次数过多造成服务卡顿,将扫描时间默认设置为最多25毫秒。实际使用时,为了避免大量 key 在同一时间到期,造成上述情况引起的卡顿问题,在设置 key 的到期时间时,最好在过期时间基础上添加一个随机时间。

惰性删除就是在客户端使用 key 的时候,Redis 检查这个 key 的过期时间,如果到期了就立即删除。

2、Redis 淘汰策略

Redis 陶策策略是在 Redis 内存超出物理内存限制时,采用的策略,用于删除部分 key,以保证线上读写服务的进行,其中物理内存限制可以设置。

Redis 提供了 6 种淘汰策略:

noeviction:默认策略,这种策略会继续处理读请求,删除请求,但是不会处理写请求,好处就是不会丢失数据。

volatile-lru:最少使用并且设置了过期时间的 key 最先被淘汰,这种算法依据元素最近被访问的时间进行排序,这样最近被使用的 key 就不会被删除。

volatile-ttl:设置了过期时间并且剩余时间最小的 key 最先被删除。

volatile-random:设置了过期时间的 key 被随机选中删除。

allkeys-random:从所有 key 中随机选择删除。

allkeys-lru:类似volatile-lru策略,只是从所有 key 中 选择。

Redis这种淘汰策略删除数据,使用的是异步线程进行处理,避免删除操作造成线上服务的卡顿。

Redis 过期策略和淘汰策略相关推荐

  1. 高性能分布式缓存redis(持久化原理 安全策略 过期删除内存淘汰策略 性能压测 高可用 Redis Cluster)

    redis redis(持久化原理 安全策略 过期删除&内存淘汰策略 性能压测 高可用 Redis Cluster) 1. 持久化原理 1.1 持久化流程(落盘) 1.2 RDB详解 1.2. ...

  2. Redis(五)Redis内存维护方案(过期策略及淘汰策略)

    目录 内存维护解决方案 过期策略 内存淘汰策略 内存维护解决方案 在Redis的配置文件中redis.conf 中memeory managment # maxmemory <bytes> ...

  3. redis过期策略与淘汰策略

    redis过期策略与淘汰策略 1.过期策略 2.淘汰策略 3.在哪里配置? 4.Lazy Free 1.过期策略 1.redis中所有的key都可以通过expire命令来设置过期时间,所有被设置了过期 ...

  4. Redis-设置过期时间及淘汰策略

    文章目录 1. TTL 2. 设置过期时间 3. 删除过期key 4. 淘汰策略 Redis-设置过期时间及淘汰策略 项目组使用的 Redis 服务器发出了内存不足报警,查了一些资料,记录下. 1. ...

  5. Reds 过期策略 内存淘汰策略 持久化策略

    过期策略 定期删除 redis 会将每个设置了过期时间的 key 放入到一个独立的字典中,以后会定期遍历这个字典来删除到期的 key. 定期删除策略 Redis 默认会每秒进行十次过期扫描(100ms ...

  6. Redis 过期 key 清理删除策略汇总

    Redis 底层使用了三种策略来清理过期的key 一.被动清理 触发条件:读/写一个已经过期的key 当读写一个key时,Redis首先检查key是否存在,若存在且已经过期,则删除key的同时返回ni ...

  7. redis的过期策略和淘汰策略

    过期键删除策略 1.定时删除:在设置键的过期时间的同时,创建一个定时器timer,让定时器在键过期时间来临时,立即执行对键的删除操作. 2.惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查 ...

  8. Redis的持久化机制、过期策略、淘汰策略

    文章目录 一.持久化机制 1. RDB机制 2. AOF机制 RDB的优缺点 AOF的优缺点 持久化机制选择 二.过期策略 常见过期策略 Redis过期策略 1. 定期删除 2. 惰性删除 RDB对过 ...

  9. Redis之key的淘汰策略

    Redis中有一些Key到期了,需要一些策略来处理这些过期的key, 设置到期时间的key会放入一个单独的字典中,以后会定时遍历这个这个字典来删除到期的key,除了定时遍历以外,还会使用惰性策略来删除 ...

最新文章

  1. 人体肠道细菌与自身细胞的比例究竟是多少?
  2. jquery简单使用入门
  3. jqGrid使用经验分享(一)——jqGrid简单使用、json格式和jsonReader介绍
  4. 基于树的模型的机器学习
  5. IntelliJ IDEA for Mac在MacOS模式下的版本控制/本地历史记录快捷键(VCS and Local History Shortcut)
  6. 安徽理工大学大学计算机科学与技术学院,2020年安徽理工大学计算机科学与技术考研经验分享...
  7. java连接符_使用java流将两个集合的元素与分隔符连接起来
  8. webpack Babel
  9. mysql在官网下载完解压后安装
  10. Python入门基础教程(非常详细)
  11. 使用mybatis生成UUID
  12. 前端页面兼容性问题学习
  13. 阿里面试官没想到,一个Volatile,我都能跟他吹半小时
  14. 复合材料计算机模拟的组成,关于复合材料层合板结构力学性能数值仿真架构的讨论...
  15. ORA-00600: 内部错误代码, 参数: [19004], [], [], [], [], []
  16. House of sprit一谈
  17. Ambassador系列-09-AuthService认证服务
  18. 前端学习笔记之流程控制语句和数组(六)
  19. Android尺子布局和自定义TextView
  20. docker--扩展学习-网络--原理--16

热门文章

  1. 1500页技术人的黑皮书 免费下载!
  2. Live预告 | 地平线李星宇:智能汽车电子构架如何变革迎接数字化重塑?
  3. opc在自动化控件系统的应用
  4. python计算ema_python – 添加一个列(EMA),它是pandas中先前新列值的结果
  5. cpc按点击计算怎么算_如何计算电商持平cpc,求公式?
  6. ESP8266 RC522
  7. 破解xlsm文件的VBA项目密码
  8. BUG克星:几款优秀的BUG跟踪管理软件
  9. delbug 云端BUG管理平台
  10. html 绘制体温单,使用zrender.js绘制体温单(2)