Redis pub/sub 和notifyKeyspaceEvent 函数之间有联系吗?

问题描述 投票:0回答:1

此代码片段是Redis的t_set.c文件中sremCommand函数的一部分。

srem command
从键指定的集合中删除一个或多个成员。

当成功删除一个或多个成员时,deleted 变量被设置为 1,触发 if 条件内内容的执行。

    if (deleted) {
        signalModifiedKey(c,c->db,c->argv[1]);
        notifyKeyspaceEvent(NOTIFY_SET,"srem",c->argv[1],c->db->id);
        if (keyremoved)
            notifyKeyspaceEvent(NOTIFY_GENERIC,"del",c->argv[1],
                                c->db->id);
        server.dirty += deleted;
    }

在 if 条件内,函数

notifyKeyspaceEvent
用于传递
type
event
key
dbid
我很好奇这个功能到底是如何运作的。

我也想知道它是否与“Redis pub/sub”有关。

如果有连接,请解释一下Redis pub/sub中如何使用notifyKeyspaceEvent。

祝你有美好的一天 - 凯文

redis
1个回答
0
投票

Redis keyspace 通知 是一项可选功能,您可以通过 redis.conf 文件或使用 CONFIG SET 命令打开。

通知类型有相当多的选项,但所有这些选项都是使用 Redis 中已有的 PubSub 机制进行通信。这些事件是监视密钥过期、删除和驱逐的好方法。您可以根据键名或事件类型获取事件。因此,您可以监控单个键的所有事件。或者所有键的单个事件。

© www.soinside.com 2019 - 2024. All rights reserved.