Redis缓存过期机制
1个回答
展开全部
一、针对与设置了过期时间的key值
1.(主动)定期删除:定时随机的检查过期的key,如果过期则清理删除
redis.conf(每秒检查的次数1-500)配置: hz 10
2.(被动)惰性删除:当客户端请求到一个已经过期的key时,redis会检查是否过期并删除
所以,虽然key过期了,但是没被清理的话,还是会占内存的。
二、内存淘汰管理机制Memory Management
当内存占满之后,redis提供缓存淘汰机制。
redis.conf: maxmemory <bytes>
* noeviction:旧缓存永不过期,新缓存设置不了,返回错误
* allkeys-lru:清除最少用的旧缓存,然后保存新的缓存(推荐使用)
* allkeys-random:在所有的缓存中随机删除(不推荐)
* volatile-lru:在那些设置了expire过期时间的缓存中,清除最少用的旧缓存,然后保存新的缓存
* volatile-random:在那些设置了expire过期时间的缓存中,随机删除缓存
* volatile-ttl:在那些设置了expire过期时间的缓存中,删除即将过期的
1.(主动)定期删除:定时随机的检查过期的key,如果过期则清理删除
redis.conf(每秒检查的次数1-500)配置: hz 10
2.(被动)惰性删除:当客户端请求到一个已经过期的key时,redis会检查是否过期并删除
所以,虽然key过期了,但是没被清理的话,还是会占内存的。
二、内存淘汰管理机制Memory Management
当内存占满之后,redis提供缓存淘汰机制。
redis.conf: maxmemory <bytes>
* noeviction:旧缓存永不过期,新缓存设置不了,返回错误
* allkeys-lru:清除最少用的旧缓存,然后保存新的缓存(推荐使用)
* allkeys-random:在所有的缓存中随机删除(不推荐)
* volatile-lru:在那些设置了expire过期时间的缓存中,清除最少用的旧缓存,然后保存新的缓存
* volatile-random:在那些设置了expire过期时间的缓存中,随机删除缓存
* volatile-ttl:在那些设置了expire过期时间的缓存中,删除即将过期的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询