我可以用生菜管理redis通知吗?我找不到任何关于它的例子或文档。当Redis中的元素过期时,我只需要在java代码中有一些通知/回调。
让我举个例子。我很抱歉,阅读生菜文档对我没有帮助(我花了一些时间)
假设我有一个对象的名称空间,我在其中执行get和set命令:
"ONLINEUSERS:userid"我添加了一个将在一小时后过期的用户:
syncCommands.setex("ONLINEUSERS:"+userid,3600, mapper.writeValueAsString(userObject));在这3600秒使密钥过期之后,我怎么能让java代码中的方法执行呢?
我是说..。在文档中,命令是:
StatefulRedisPubSubConnection<String, String> connection = client.connectPubSub()
connection.addListener(new RedisPubSubListener<String, String>() { ... })
RedisPubSubAsyncCommands<String, String> async = connection.async();
RedisFuture<Void> future = async.subscribe("channel");
// application flow continues匹配我的键命名空间的expire事件的字符串、字符串数组和"channel“参数的值是什么?
发布于 2019-06-17 20:39:57
我也面临着类似的问题。
首先,您需要确保您的Redis服务器配置为发布键空间事件通知。默认情况下,此选项处于禁用状态。通常,配置文件位于/etc/redis/redis.conf中。要查看的属性称为notify-keyspace-events。如果您希望Redis服务器发布过期和已删除密钥的事件,您可以向last属性传递一个值,例如Ex。一旦应用了配置更改,请考虑重新启动Redis服务器。
第二步,您需要在Redis客户端实例上订阅名为__keyevent@0__:expired的频道。
https://stackoverflow.com/questions/44080137
复制相似问题