998、redis的缓存失效策略

145 阅读1分钟

Redis 的缓存失效策略通常是通过设置过期时间来实现的。以下是一些常见的 Redis 缓存失效策略:

  1. 定时过期(TTL): 使用 EXPIRE 命令或者相关的 SET 命令参数,设置键的过期时间。一旦过了指定的时间,键就会被自动删除。

    SET key value EX 3600  # 设置键为 value,过期时间为 3600
  2. 基于访问的过期(LRU算法): Redis 使用 Least Recently Used (LRU) 算法来管理内存中的数据。如果启用了 LRU 算法,并且键是过期的,当访问该键时,Redis 会检查它的过期时间并决定是否删除。

  3. 懒汉式过期(Lazy Expire): 在访问时检查键的过期时间,如果过期则删除。这是一种比较灵活的策略,但可能会导致在键过期后仍然被访问一段时间。

  4. 定期删除过期键: Redis 会定期(每秒执行一次)随机检查一些设置了过期时间的键,并删除其中过期的键。这是一种自动清理机制,通过配置 hz(每秒执行的命令数)来控制检查的频率。

  5. 发布订阅机制(Pub/Sub): 当某个键过期时,Redis 可以发布一个消息,订阅者可以收到这个消息并进行相应的处理。这需要使用 Redis 的发布订阅功能。

# 发布过期事件
EXPIREAT key timestamp

如果某些数据很少被访问,可以采用懒汉式过期;如果对缓存的即时性要求较高,可以使用定时过期。