【问题标题】:Listener for Redis in JavaJava 中的 Redis 监听器
【发布时间】:2014-10-30 11:40:25
【问题描述】:

是否可以在 Redis 中设置一个侦听器,该侦听器在 Redis 中插入项目(值/键)或更改值时触发? 我研究了图书馆 Jedis 和 Redisson,但一无所获。

【问题讨论】:

    标签: java redis listener jedis


    【解决方案1】:

    是的,您可以使用 Redis 的 Keyspace Notifications 并订阅 Jedis/Redisson 客户的相关频道。

    【讨论】:

    • 来自文档:“因为 Redis Pub/Sub 很火并且忘记了,如果您的应用程序需要可靠的事件通知,即如果您的 Pub/Sub 客户端断开连接,则目前无法使用此功能,然后重新连接,在客户端断开连接期间传递的所有事件都将丢失。”我们可以使用任何技术/架构来弥补这一点吗?
    • 目前,我知道的唯一选择是使用 RedisGears - 请参阅此处了解详细信息github.com/antirez/redis/issues/5766#issuecomment-620623878
    【解决方案2】:

    Redis 没有支持此功能的功能。客户端只需一次又一次地查询数据以获取信息,从而可以发出您正在搜索的通知。

    我想你应该利用 Redis 的通道功能(然后你需要在客户端中进行更改,将数据实际推送到你的 redis 数据库)

    您在哪里订阅 订阅 hashtablekeychannel

    即。插入数据应更改为 HSET hashtablekey 键“值” PUBLISH hashtablekeychannel key

    (实际上在大多数情况下,您实际上可以删除哈希表并发布值 - 但仅此而已)

    【讨论】:

    • 自 v2.8 和键空间通知以来,这并不完全准确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多