• redis 过期回调通知


    redis 过期回调通知

    背景

    在使用redis的过程中,有时我们会遇到这种情景,当key过期的时候,我们需要去重新做一些操作,比如重新生成value等。之前,一直用的是添加一个celery定时任务,今天了解redis的通知功能后,发现可以用直接实现。

    简介

    官方原文:https://redis.io/topics/notifications
    简单来说,在2.8.0之后,redis提供了keyspace 通知的功能,可以实时监控redis中keys的变化情况(set, expire,expired,del...)结果会通过redis的消息订阅/发布机制。我们通过订阅指定的channel,就可以知道redis中哪些值过期。

    使用

    • 开启notify-keyspace-events。
      默认情况下,redis是关闭了此功能,我们可以在配置文件中开启。也可以通过命令redis-cli config set notify-keyspace-events KEA
      其中KEA代表的意义可以查看文档的说明,

    (如果我们只关心过期的事件,我们可以使用KEx)
    此时,当我们设置的key过期的时候,我们就可以通过订阅“__key[db]__:[key]” 来监听了

    • 订阅
      配置好后,我们运行redis的订阅指令redis-cli psubscribe '__key*__:*',然后我们设置一个值,并添加过期时间,就可以看到在过期后,就会收到消息了,(收到怎样的消息需要看前面的配置, 这里本人配置的是KEx,仅监听过期)。
      而订阅的处理方式可以用自己熟悉的语言去实现

    反思

    redis默认没开启可能是考虑到性能,毕竟会多一个监控,发布的步骤,具体性能怎么养,还是后面空了在测试下吧,本文只提供个思路。

  • 相关阅读:
    angular----关于注入HTML
    js ---- 时间格式
    JQuery的父、子、兄弟节点查找方法
    js中的时间与毫秒数互相转换
    $.each ---- 跳出当前的循环
    关于ng-model取不到值的问题
    IOS 物理引擎
    斯坦福 IOS讲义 课件总结 三
    斯坦福 IOS讲义 课件总结 二
    斯坦福 IOS讲义 课件总结 一
  • 原文地址:https://www.cnblogs.com/yuzhenjie/p/9966285.html
Copyright © 2020-2023  润新知