关于元素的Redis莴苣java图书馆通知到期

时间:2017-05-19 23:05:26

标签: redis lettuce

我可以使用Lettuce管理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

String,String数组和&#34; channel&#34;的值是什么?参数匹配我的密钥命名空间的expire事件?

1 个答案:

答案 0 :(得分:0)

我面临着类似的问题。

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

第二,您需要从Redis客户端实例中以名称__keyevent@0__:expired订阅频道。