当前位置:  开发笔记 > 编程语言 > 正文

使用StackExchange.Redis的Redis键空间通知

如何解决《使用StackExchange.Redis的Redis键空间通知》经验,为你挑选了1个好方法。

我环顾四周,我无法找到如何使用StackExchange.Redis库在Redis上执行键空间通知订阅.

检查可用的测试我发现使用频道的pubsub,但这更像是服务总线/排队,而不是订阅特定的Redis键事件.

是否可以使用StackExchange.Redis来利用此Redis功能?



1> Marc Gravell..:

常规订阅者API应该可以正常工作 - 对用例没有假设,这应该可以正常工作.

但是,我有点同意这是内置的功能,可能会受益于API上的辅助方法,也许还有一个不同的委托签名 - 封装了keyapace通知的语法,以便人们不需要复制它.为此:我建议您记录一个问题,以免它被遗忘.

有关如何订阅键空间事件的简单示例

首先,检查Redis键空间事件是否已启用非常重要.例如,应在类型为Set的键上启用事件.这可以使用CONFIG SET命令完成:

CONFIG SET notify-keyspace-events KEs

一旦启用了密钥空间事件,它就是订阅pub-sub频道:

using (ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("localhost"))
{
    IDatabase db = connection.GetDatabase();
    ISubscriber subscriber = connection.GetSubscriber();

    subscriber.Subscribe("__keyspace@0__:*", (channel, value) =>
        {
            if ((string)channel == "__keyspace@0__:users" && (string)value == "sadd")
            {
                // Do stuff if some item is added to a hypothethical "users" set in Redis
            }
        }
    );
}

了解更多关于密钥空间的事件在这里.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有