Java --- redis7的缓存淘汰策略

目录

一、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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸭鸭老板

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值