3

Azure Redis 缓存是否允许我设置一个函数,以便在我的缓存中的某个键过期时可靠地触发?

4

1 回答 1

4

您可以结合使用Redis Pub/SubRedis Keyspace Notifications的客户端,让客户端在特定键发生事件或任何键发生特定事件时接收消息。然后,您可以使用模式匹配订阅来接收多个键的消息。您还可以从单个客户端订阅多个频道;所有消息都包括它发布到哪个频道,以便您的客户可以决定要做什么。

要在任何以开头的密钥foo过期时接收消息,请执行以下操作:

  1. notify-keyspace-events配置值设置为Kx使用 Azure 门户。为 Azure 设置值的步骤在此处。有关配置值模式的更多详细信息在此处定义。
  2. 使用您选择的客户端,PSUBSCRIBE(模式订阅)到您的密钥通道:PSUBSCRIBE '__keyspace@*__:foo*'
  3. 使用另一个客户端连接,为您的密钥设置一个带有 TTL 的值:SET foo42 bar EX 5
  4. 5 秒后,您应该会在订阅客户端上看到一条消息:"pmessage","__keyspace@*__:foo*","__keyspace@0__:foo42","expired"

要在任何密钥过期时接收消息,请执行以下操作:

  1. notify-keyspace-events配置值设置为Ex
  2. PSUBSCRIBE 到 keyevent 通道以获取过期的密钥:PSUBSCRIBE '__keyevent@*__:expired'
  3. 在另一个客户端中,设置一个带有 TTL 的密钥:SET foo bar EX 5
  4. 5 秒后,在您的订阅客户端上看到一条消息:"pmessage","__keyevent@*__:expired","__keyevent@0__:expired","foo"

为了让客户快速开发和调试,我建议使用redis-cliAzure 门户中的 Redis 控制台

希望这可以帮助。祝你好运!

于 2018-12-26T23:51:36.837 回答