gpt4 book ai didi

redis - 我可以在 Redis 的 lpush 操作上监听事件吗?

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

我正在为 Redis 使用 Jedis Java 客户端。我的要求是,当有人将项目添加到列表时,通过执行 jedisClient.lpush("mylist", "this is my msg") 说mylist,我需要得到通知。这可能吗?

最佳答案

是的,可以通过以下两种方式之一实现。

第一种方法是使用 Redis 的 keyspace notifications .使用以下配置指令配置 Redis 以生成列表事件:

CONFIG SET notify-keyspace-events El

然后,订阅相关 channel 。如果您只想订阅 mylist 的更改,请执行以下操作:

SUBSCRIBE __keyevent@0__:mylist

或者,使用 PSUBSCRIBE 并监听事件以匹配匹配模式的键名。

但是请注意,键空间通知不会提供实际推送的值。您可以使用 Lua 脚本作为替代方法并实现您自己的通知机制。例如,使用以下脚本将自定义消息推送并发布到自定义 channel :

local l = redis.call("LPUSH", KEYS[1], ARGS[1])
redis.call("PUBLISH", "mylistnotif:" .. KEYS[1], "Pushed value " .. ARGS[1])
return l

确保“某人”使用该脚本进行实际的列表推送并订阅相关 channel 。

关于redis - 我可以在 Redis 的 lpush 操作上监听事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27753140/

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