美文网首页
Redis过期键删除策略和淘汰机制

Redis过期键删除策略和淘汰机制

作者: kyo1992 | 来源:发表于2021-04-11 00:17 被阅读0次

前言

Redis缓存淘汰策略与Redis键的过期删除策略并不完全相同,前者是在Redis内存使用超过一定值的时候(这个值可以配置)使用的淘汰策略;而后者是通过定期删除+惰性删除两者结合的方式进行内存淘汰的。

删除策略

可能的删除策略

定时删除:在设置键的过期时间的同时,创建一个定时器 timer. 让定时器在键的过期时间来临时,立即执行对键的删除操作。

定期删除:每隔一段时间程序就对数据库进行一次检查,删除里面的过期键。至于要删除多少过期键,以及要检查多少个数据库,则由算法决定。

惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键。

在上述的三种策略中定时删除和定期删除属于不同时间粒度的主动删除,惰性删除属于被动删除。

三种策略的优缺点

定时删除对内存使用率有优势,但是对 CPU 不友好;
定期删除是定时删除和惰性删除的折中;
惰性删除对内存不友好,如果某些键值对一直不被使用,那么会造成一定量的内存浪费。

Redis中实现

Reids 采用的是 惰性删除和定期删除 的结合。

淘汰策略

Redis六种淘汰策略

allkeys-lru:从所有 KV 集中优先对最近最少使用(less recently used)的数据淘汰
volatile-lru:从已设置过期时间的 KV 集中优先对最近最少使用(less recently used)的数据淘汰
volitile-ttl:从已设置过期时间的 KV 集中优先对剩余时间短(time to live)的数据淘汰
volitile-random:从已设置过期时间的 KV 集中随机选择数据淘汰
allKeys-random:从所有 KV 集中随机选择数据淘汰
noeviction:不淘汰策略,若超过最大内存,返回错误信息

4.0之后新增两种
allkeys-lfu:当内存不足以容纳新写入数据时,在键空间中,移除最不经常使用的 key
volatile-lfu:从已设置过期时间的数据集(server.db[i].expires)中挑选最不经常使用的数据淘汰

最大内存限制和策略设置

redis.conf

maxmemory 100mb
maxmemory-policy allkeys-lru
lru与lfu区别

lfu比lru多了一个计数器,举个例子,如果触发内存淘汰,那么A距离的时间最久,但实际上A的使用频率要比B频繁,所以合理的淘汰策略应该是淘汰B。LFU就会淘汰B,而LRU会淘汰A。

相关文章

  • Redis几种常见问题

    1.Redis的过期策略以及内存淘汰机制 Redis采用的是定期删除+惰性删除策略+内存淘汰机制。 定期删除,Re...

  • Redis过期键删除策略和淘汰机制

    前言 Redis缓存淘汰策略与Redis键的过期删除策略并不完全相同,前者是在Redis内存使用超过一定值的时候(...

  • Redis的缓存淘汰策略LRU与LFU

    前言 Redis缓存淘汰策略与Redis键的过期删除策略并不完全相同,前者是在Redis内存使用超过一定值的时候(...

  • Redis从入门到精通(三、Redis的过期策略和内存淘汰机制)

    此篇介绍了Redis过期策略以及Redis的内存淘汰机制,从内存淘汰的8种策略,如何开启内存淘汰策略到如何选择合适...

  • Redis的内存淘汰策略

    Redis中除了有三种过期键删除策略,还有6中内存淘汰策略,即写入的数据超出Redis的内存空间。(1)若达到限制...

  • Redis - 过期策略和内存淘汰策略

    Redis - 过期策略和内存淘汰策略 Redis内存过期策略 Redis是key-value数据库,我们可以设置...

  • redis--数据库

    数据库对象定义如下: redisDb定义如下: 过期键删除 惰性删除redis过期键惰性删除策略定义在db.c/e...

  • Redis 过期策略

    redis 过期策略 redis 过期策略是:定期删除+惰性删除。 所谓定期删除,指的是 redis 默认是每隔 ...

  • Redis中Key的过期策略和淘汰机制

    Key的过期策略 Redis的Key有3种过期删除策略,具体如下: 1. 定时删除 原理:在设置键的过期时间的同时...

  • redis数据淘汰机制

    redis的过期策略 redis有两种过期策略,定期删除和惰性删除 定期删除:redis每个100ms随机抽取一些...

网友评论

      本文标题:Redis过期键删除策略和淘汰机制

      本文链接:https://www.haomeiwen.com/subject/hraukltx.html