redis淘汰策略优化
redis配置内存
Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。
对应终端操作:
config set maxmemory 100mb 设置redis最大内存
config get maxmemory 获取设置的redis能使用的最大内存(默认104857600kb)
注:
如果不设置最大内存大小或者设置最大内存大小为0,在64位操作系统下不限制内存大小,在32位操作系统下最多使用3GB内存
allkeys-lru 策略 vs noeviction(默认策略)
allkeys-lru 策略
从所有key中使用LRU算法进行淘汰
noeviction(默认策略):
对于写请求不再提供服务,直接返回错误(DEL请求和部分特殊请求除外)
LRU算法:
LRU(Least Recently Used),即最近最少使用,是一种缓存置换算法, 如果一个数据在最近一段时间没有被用到,那么将来被使用到的可能性也很小,所以就可以被淘汰掉)
注:
- Redis使用的是近似LRU算法,它跟常规的LRU算法还不太一样。近似LRU算法通过随机采样法淘汰数据,每次随机出5(默认)个key,从里面淘汰掉最近最少使用的key
- Redis3.0对近似LRU的优化 Redis3.0对近似LRU算法进行了一些优化。新算法会维护一个候选池(大小为16),池中的数据根据访问时间进行

Redis作为内存数据库,通过配置最大内存大小,并采用近似LRU和LFU算法进行内存淘汰。allkeys-lru策略利用LRU淘汰最近最少使用的key,而LFU策略基于访问频率淘汰数据。LFU在Redis4.0及以上版本提供,分为volatile-lfu和allkeys-lfu,能更准确地保留热点数据。
最低0.47元/天 解锁文章
7151

被折叠的 条评论
为什么被折叠?



