redis過期提醒
有一次看redis的配置文件發現一個notify-keyspace-events配置,注釋里邊長篇大論的,那我得看看這是干啥的,看完注釋內容,發現不得了了,redis竟然還有過期提醒的功能
接下來得大家解釋一下:
首先呢,這個功能是基于發布訂閱的,通過key的事件來觸發發布訂閱。相關參數有
-
K keyspace 事件,事件以 keyspace@ 為前綴發布 -
E keyevent 事件,事件以 keyevent@ 為前綴發布 -
g 一般性的,非特定類型的命令,比如del,expire,rename等 -
$ 字符串命令 -
l List命令 -
s Set命令 -
h Hash命令 -
z Sorted set命令 -
x 過期事件,當某個鍵過期并刪除時會產生該事件 -
e 驅逐事件,當某個鍵因 maxmemore 策略而被刪除時,產生該事件 -
t Stream命令 -
m Key命中事件 -
A g$lshzxet的別名,所以使用AKE的話表示所有事件
比如我們要實現過期提醒的功能。需要在redis.conf中配置notify-keyspace-events Ex
然后我們訂閱該事件__keyevent@*__:expired
##?*表示所有db,由于我們監聽的是帶有模式匹配的,所以使用PSUBSCRIBE
##?如果我們只使用了db0,也可以使用SUBSCRIBE?__keyevent@0__:expired來只訂閱db0的
PSUBSCRIBE?__keyevent@*__:expired
https://zhhll.icu/2023/數據庫/非關系型數據庫/redis/基礎/16.redis過期提醒/
本文由 mdnice 多平臺發布