首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis Lettuce java库元素过期通知

Redis Lettuce java库元素过期通知
EN

Stack Overflow用户
提问于 2017-05-20 07:05:26
回答 1查看 1.7K关注 0票数 4

我可以用生菜管理redis通知吗?我找不到任何关于它的例子或文档。当Redis中的元素过期时,我只需要在java代码中有一些通知/回调。

让我举个例子。我很抱歉,阅读生菜文档对我没有帮助(我花了一些时间)

假设我有一个对象的名称空间,我在其中执行get和set命令:

代码语言:javascript
复制
"ONLINEUSERS:userid"

我添加了一个将在一小时后过期的用户:

代码语言:javascript
复制
syncCommands.setex("ONLINEUSERS:"+userid,3600, mapper.writeValueAsString(userObject));

在这3600秒使密钥过期之后,我怎么能让java代码中的方法执行呢?

我是说..。在文档中,命令是:

代码语言:javascript
复制
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“参数的值是什么?

EN

回答 1

Stack Overflow用户

发布于 2019-06-17 20:39:57

我也面临着类似的问题。

首先,您需要确保您的Redis服务器配置为发布键空间事件通知。默认情况下,此选项处于禁用状态。通常,配置文件位于/etc/redis/redis.conf中。要查看的属性称为notify-keyspace-events。如果您希望Redis服务器发布过期和已删除密钥的事件,您可以向last属性传递一个值,例如Ex。一旦应用了配置更改,请考虑重新启动Redis服务器。

第二步,您需要在Redis客户端实例上订阅名为__keyevent@0__:expired的频道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44080137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档