Redis系列--数据过期清除策略&缓存淘汰策略
Redis的数据过期清除策略主要有以下几种:
- 惰性删除:当访问数据时,如果发现数据已经过期,就会立即删除。
- 定时删除:为每个数据设置一个定时器,当过期时间到达时,立即删除。
- 惰性+定时结合:在读写时检查是否过期,并且定时任务会定期检查并清除过期的数据。
- 内存淘汰:当内存不足以容纳新的数据时,会根据一定的淘汰策略删除一些数据。
Redis的缓存淘汰策略主要有以下几种:
- noeviction:不进行任何淘汰,当内存不足时,会返回错误。
- allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key。
- volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的key。
- allkeys-random:在键空间中,随机移除一些key。
- volatile-random:在设置了过期时间的键空间中,随机移除一些key。
- volatile-ttl:在设置了过期时间的键空间中,移除即将过期的key。
Redis配置文件中可以设置maxmemory-policy参数来指定淘汰策略。
示例:
# 设置最大内存,当内存达到这个值时,会根据volatile-lru策略进行淘汰
maxmemory 2gb
# 设置淘汰策略
maxmemory-policy volatile-lru
在实际应用中,可以根据业务需求和内存大小选择合适的过期清除策略和淘汰策略。
评论已关闭