1 过期删除策略

1.1 定时删除

当对一个key设置了过期时间,当该时间到,立即执行对该key的删除。

优点:定时删除对内存最友好,保证key一旦过期就能立即从内存中删除。

缺点:对CPU最不友好,在过期键比较多的时候,删除过期键会占用一部分CPU时间,对服务器的响应时间和吞吐量造成影响。

1.2 惰性删除

当一个key被设置过期时间后,当key的过期时间到了,并不会立即从内存中删除;在我们使用该key时,先检查其是否过期,过期则将其从内存中删除。

优点:对CPU友好、只在使用的时候才会进行过期检查,对于没用到的key不会浪费时间进行过期检查。

缺点:对内存不好用,key过期了,却一直没被使用,就会一直占这内存。如果数据库中存在很多过期键不被使用,便永远不会被被删除,内存不会被释放,从而造成内存泄漏。

1.3 定期删除

每隔一段时间(该时间段可设置),随机抽取一些设置了过期时间的key进行检查,删除里面过期的键。

在Redis的配置文件redis.conf中有一个属性"hz",默认为10,表示1s执行10次定期删除,即每隔100ms执行一次,可以修改这个配置值。

随机抽取,抽取多少?

同样是由redis.conf文件中的maxmemory-samples属性决定的,默认为5。

优点:可以通过限制删除操作执行的时长和频率来减少删除操作对 CPU 的影响。另外定期删除,也能有效释放过期键占用的内存。

缺点:难以确定删除操作执行的时长和频率。

   如果执行的太频繁,定期删除策略变得和定时删除策略一样,对CPU不友好。

   如果执行的频率小,就和惰性删除一样了,过期键占用的内存不会及时得到释放。

另外最重要的是,在获取某个键时,如果某个键的过期时间已经到了,但是还没执行定期删除,那么就会返回这个键的值,这是业务不能忍受的错误。

2 Redis过期删除策略

redis过期删除策略:惰性删除和定期删除。

3 内存淘汰策略

内存淘汰机制能保证在redis内存占用过高的时候,去进行内存淘汰,也就是删除一部分key,保证redis的内存占用率不会过高,那么它会淘汰哪些key呢?Redis目前共提供了8种内存淘汰策略,含Redis 4.0版本之后又新增的两种LFU模式:volatile-lfu和allkeys-lfu。

LRU:最近最久未使用

LFU:最近最少使用

no-eviction 当内存不足以容纳新写入数据时,新写入操作会报错,无法写入新数据,一般不采用。
allkeys-lru 当内存不足以容纳新写入数据时,移除最近最少使用的key,这个是最常用的
allkeys-random 当内存不足以容纳新写入的数据时,随机移除key
allkeys-lfu 当内存不足以容纳新写入数据时,移除最不经常(最少)使用的key
volatile-lru 当内存不足以容纳新写入数据时,在设置了过期时间的key中,移除最近最少使用的key
volatile-random 内存不足以容纳新写入数据时,在设置了过期时间的key中,随机移除某个key 
volatile-lfu 当内存不足以容纳新写入数据时,在设置了过期时间的key中,移除最不经常(最少)使用的key 
volatile-ttl 当内存不足以容纳新写入数据时,在设置了过期时间的key中,优先移除过期时间最早(剩余存活时间最短)的key

※ 什么时候会执行内存淘汰策略,内存占用率过高的标准是什么?

redis.conf配置文件中的 maxmemory 属性限定了 Redis 最大内存使用量,当占用内存大于maxmemory的配置值时会执行内存淘汰策略。

※ 内存淘汰策略的配置

内存淘汰机制由redis.conf配置文件中的maxmemory-policy属性设置,没有配置时默认为no-eviction模式。

※ 淘汰策略的执行过程

> 客户端执行一条命令,导致Redis需要增加数据(比如set key value);

> Redis会检查内存使用情况,如果内存使用超过 maxmemory,就会按照配置的置换策略maxmemory-policy删除一些key;

> 再执行新的数据的set操作;

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 过期策略和淘汰策略

    1.Redis 过期策略 Redis 过期策略用于处理设置了缓存时间的数据,使用定时扫描和惰性删除机制删除到期的缓存数据. Redis 将设置了过期时间的 key 保存在一个独立的字典中,定时扫描就是 ...

  10. Redis之key的淘汰策略

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

最新文章

  1. Pandas对不同类型缺失值的转换规则
  2. html外链式css运行不出来div,html+css外链式
  3. 04-树4 是否同一棵二叉搜索树 (25 分)
  4. centos系统云服务器,Centos系统怎么进云服务器
  5. svn 修改文件的二进制或文本标记
  6. (88)FPGA面试题-使用Verilog HDL编写二进制转格雷码
  7. ruby学习笔记(11)--symbol与hash参数
  8. 叫板抖音,运营商入局短视频
  9. android 项目将csv文件写入sqlite数据库 代码,如何将csv文件大容量插入sqlite c#
  10. t–sql pl–sql_SQL日期时间–您应该知道的15个重要功能!
  11. java post上传进度,OkHttp实现文件上传进度
  12. 入门OJ 4187【周末舞会】
  13. Android使用弹出式对话框
  14. DB2数据库备份和恢复笔记
  15. 中国移动云MAS平台 HTTP(JAVA版) 接口发送普通短信
  16. 计算机配置动态硬盘,【转】基本磁盘动态磁盘GTP磁盘MBR磁盘RAID阵列磁盘的区别(一)...
  17. Python3 实现网易126邮件发送
  18. 创业半年回顾(没饭吃了,我再也不想创业了)
  19. 带宽下载速度单位换算
  20. 开源网络情报(OSINT)定义:对您的企业意味着什么

热门文章

  1. python用什么编译器-python用什么编译器
  2. MKV 高清视频文件分解与封装和音频编码的转换
  3. 【Firefox设置百度搜索引擎】
  4. Linksys e3200初试tomato系统
  5. 世嘉MD游戏开发【二】:Hello World
  6. C# 压缩解压Zip文件
  7. 使用GifCam软件录制gif动图
  8. 最新Apicloud+Vue开发App专题(完整)
  9. 福昕pdf编辑器 android,福昕PDF编辑器
  10. 身份证号中提取性别、年龄、年月日的Excel(WPS)公式