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

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

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

回答:

常规订户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

}

}

);

}

在此处了解有关键空间事件的更多信息。

以上是 使用StackExchange.Redis的Redis键空间通知 的全部内容, 来源链接: utcz.com/qa/409809.html

回到顶部