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