Redis 缓存过期机制与内存淘汰机制

Redis的高并发高性能都是基于内存的。

expire是设置redis过期时间的命令,expire设置过期时间的单位是秒,如设置name的过期时间为1000秒:操作命令:

  expire name 1000 

已经过期的key如何处理?

答:设置了expire的key缓存过期了,但是服务器的内存还是会被占用,这是因为 redis 所基于的两种删除策略:

   

redis有两种测略:

1.(主动)定期删除:

    定时随机的检查过期的key,如果过期,则清理删除。(每秒检查次数在redis.conf中的hz配置,一般采用默认的10)

2.(被动)惰性删除:

         当客户端请求一个已经过期的key, 那么 redis 会检查这个key是否过期,如果过期则删除,然后返回一个null,

这种策略对 cpu 比较友好,不会有太多的损耗,但是内存占用会比较高。

所以,虽然 key 过期了,但是只要没有被 redis 清理,那么内存还是会被占用着。

===================================================================================

                                                               内存淘汰机制:

找到:

maxmemory默认被注销了,手动开启

 

最大内存策略:当到达最大使用内存时,你可以在下面6种行为中选择,Redis如何选择淘汰数据库键

 在这里设置策略,默认关闭 ,推荐使用:allkeys-lru

 

发布了55 篇原创文章 · 获赞 5 · 访问量 6053

猜你喜欢

转载自blog.csdn.net/weixin_42528855/article/details/103826042