Redis的过期策略主要有两种:主动删除和被动删除。
主动删除:
active-expire-effort-per-second参数来控制主动删除的频率。这个参数表示每秒主动删除的key的数量。默认值是100。被动删除:
maxmemory-policy参数来设置被动删除的策略。当内存达到最大值时,Redis会根据这个策略来删除一些key。可选的策略包括: noeviction:默认策略,当内存不足以容纳新写入数据时,新写入操作会报错。一般用在内存不能为后续写入操作扩容的场景。allkeys-lru:从所有key中使用LRU(最近最少使用)算法进行淘汰。volatile-lru:从已设置过期时间的key中使用LRU算法进行淘汰。allkeys-random:从所有key中随机淘汰数据。volatile-random:从已设置过期时间的key中随机淘汰数据。volatile-ttl:从已设置过期时间的key中淘汰剩余生存时间(TTL)最短的key。配置示例:
# 设置主动删除的频率 active-expire-effort-per-second 50 # 设置内存达到最大值时的删除策略 maxmemory-policy volatile-lru 注意,这些配置需要在Redis启动前或者运行时通过CONFIG SET命令来设置。例如:
CONFIG SET active-expire-effort-per-second 50 CONFIG SET maxmemory-policy volatile-lru 另外,如果你想要为特定的key设置过期时间,可以使用EXPIRE命令或者SETEX命令。例如:
EXPIRE key 60 # 设置key在60秒后过期 SETEX key 60 value # 设置key在60秒后过期,并设置key的值为value 以上就是Redis的过期策略配置方法。