目录
一、redis内存查看与设置
二、redis的数据删除方式
三、redis缓存淘汰策略
一、redis内存查看与设置
查看redis最大占用内存:
redis默认内存使用:
不设置最大内存大小或设置为0,在64位操作系统下不限制内存大小,32位操作系统最多使用3G
一般生成上如何配置:
一般推荐redis设置内存为最大物理内存的四分之三。
修改redis内存设置:
1、通过配置文件修改
2、通过命令修改(重启后失效)
查看redis内存使用情况命令:
超出redis设置内存最大值:
二、redis的数据删除方式
三种删除策略:
1、立即删除:对CPU消耗极大,用处理器性能换取存储空间。
2、惰性删除:对memory不友好,用存储空间换取处理器性能。
3、定期删除:定期抽样key,判断是否过期,但会有遗漏的过期key。
三、redis缓存淘汰策略
lru和lfu算法的区别:
LRU:最近最少使用页面置换算法,淘汰最长时间未被使用的页面,看页面最后一次被使用到发生调度的时间长短,首先淘汰最长未被使用的页面。
LFU:最近最不常用页面置换算法,淘汰一定时期内被访问次数最少的页,看一定时间段内被使用的频率,淘汰一定时间内被访问次数最少的页。
淘汰策略有那些:
1、noeviction:不会驱逐任何key,即使内存达到上限也不进行置换,所有能引起内存增加的命令都会返回error。
2、allkeys-lfu:对所有key使用LFU算法进行删除
3、allkeys-lru:对所有key使用LRU算法进行删除,优先删除掉最近最不常用的key,用以保存新数据。
4、volatile-lru:对所有设置了过期时间的key使用LRU算法进行删除。
5、allkeys-random:对所有key随机删除
6、volatile-random:对所有设置了过期时间的key随机删除
7、volatile-ttl:删除马上要过期的key
8、volatile-lfu:对所有设置了过期时间的key使用LFU算法进行删除。
选择策略:
1、在所有的key都是最近使用,那么就需要选择allkeys-lru进行置换最近最不经常使用的key,如果不确定使用哪种策略,推荐使用allkeys-lru。
2、如果所有key的访问概率都是差不多,那么可以选用allkeys-random策略去置换数据。
3、如果对数据有足够的了解,能够为key指定hint(通过expire/ttl指定),那么可以选择volatile-ttl进行置换。
修改策略:
1、使用config命令(重启服务后会失效)
2、直接redis.conf配置文件
配置建议:
1、避免存储bigkey
2、开启惰性淘汰,lazyfree-lazy-eviction=yes