gpt4 book ai didi

Redis 通知

转载 作者:IT王子 更新时间:2023-10-29 06:04:25 26 4
gpt4 key购买 nike

我正在使用 Redis 作为分布式缓存。我有不同的应用程序,它们只听特定的键。例如:App1 听 App1.*App2 监听 App2.* 等等。

我的应用程序使用以下模式接收通知:App1:“ key *:APP1。”App2: "key*:APP2."

我只需要发送有关设置、删除、过期、驱逐事件的通知,这就是我尝试使用通知键空间事件“AK”的原因。如果对我来说工作正常,但在这种情况下,“AK”配置 redis 开始发送我不需要的额外通知,如“过期”。

所以根据文档http://redis.io/topics/notifications我试图实现自定义属性:

notify-keyspace-events "Ksxe"仅发送已设置、已过期和已驱逐的通知。但实际上在这种情况下我只收到过期的通知..

问题:1. 为什么我没有收到 set 和 evicted 事件?为什么我只收到过期的事件?2、有什么办法可以让redis只发送del通知??

我也试过“Ks”但是redis不发送关于设置事件的通知g$lshzxe 的别名,因此“AKE”字符串表示所有事件。“Kg$lshzxe”也不能正常工作..

最佳答案

我认为您误解了“s”标志。它与 set 命令无关。它告诉 Redis 只发送更改类型“redis 集”键的命令,例如 sadd 或 Redis 集 类型 过期的键.

因此,在您的示例“Ksxe”中,您指示 Redis 在任何包含 Redis 集 的 key 被驱逐或“过期”时向您发送通知。 “Ks”选项指示 Redis 仅在“set”type 键被更改时向您发送通知,而不是在使用 set string 时 命令。要将其翻译成英语,您告诉 Redis“当‘set’类型的键过期或被逐出时告诉我”。

如果您想知道何时使用 set 命令创建或更改 type 字符串的 key ,并为其添加过期时间,设置过期时间会立即删除键,或者被逐出,你需要改为使用“K$xeg”。 “g”很重要,因为它捕获了 expire 命令本身的使用,而“$”表示字符串类型。

另请注意,“g”标志将导致“过期”事件,但过期事件将被标记为“已过期”,使您能够区分两者。如果您不关心在 key 上创建 TTL,则可以省略“g”。

关于Redis 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39786427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com