redis的删除策略和淘汰策略

一、删除策略:是当数据到期,redis对过期数据的处理策略。
1.定时删除:当某一个key的过期时间到达后,redis就把对应的value和key删除。
优点是省内存,能快速的把过期数据删除腾出空间。
缺点是CPU资源占用过高,尤其是当CPU还在尽力处理其他事情的时候,这时候如果有key过期,就可能两边(redis和其他服务)体验都不好,并且当定时key越多,分配的资源就越多,就越影响性能。
2.惰性删除:数据过期不是立刻删除,而是要获取数据的时候判断是否过期,如果过期再删除。
优点是节约CPU资源。
缺点是有较大的OOM风险。
3.定期删除:走定时任务,随机清理过期的数据。这个定时任务是通过时间进行资源分配的,比如1秒钟抽出0.1秒来执行删除任务。
这种策略是1和2的折中策略,优点是比1、2两个缺点好点,缺点是比1、2两个优点差点。
二、淘汰策略:是当数据放不下的时候,淘汰其他数据的策略。
相关配置:
1:maxmemory ?mb 释:分配给redis的内存大小 ,触发淘汰策略的阈值。
2:maxmemory-samples count 释:每次选取待删除数据的个数,采用随机获取数据的方式作为待检测删除数据。
3:maxmemory-policy noeviction 一共8个值。
八种淘汰策略:
1)noeviction: 不删除,直接返回报错信息。
2)在设置了过期时间的key:
volatile-lru:在设置了过期时间的key中,移除最久未使用的key。
volatile-random:在设置了过期时间的key中,随机移除某个key。
volatile-lfu:在设置了过期时间的key中,移除最近最少使用的key。
volatile-ttl: 在设置了过期时间的key中,移除准备过期的key。
3)全部的key:
allkeys-lru:移除最久未使用(使用频率最少)使用的key。
allkeys-random:随机移除某个key。
allkeys-lfu:移除最近最少使用的key。

你可能感兴趣的:(resdis,redis,缓存,数据库)