C# 如何使用C订阅Redis事件#
我有一台使用Redis的远程计算机。我想接收有关it Redis事件(更新、新密钥等)的通知。我已经在线搜索解决方案并登陆StackExchange.Redis,然后我开始创建能够监听Redis事件的windows服务。我找到了一个代码示例:C# 如何使用C订阅Redis事件#,c#,redis,publish-subscribe,C#,Redis,Publish Subscribe,我有一台使用Redis的远程计算机。我想接收有关it Redis事件(更新、新密钥等)的通知。我已经在线搜索解决方案并登陆StackExchange.Redis,然后我开始创建能够监听Redis事件的windows服务。我找到了一个代码示例: var endp = "x.x.x.x:xxxx" using (ConnectionMultiplexer connection = ConnectionMultiplexer.Connect(endp)) { IDatabase db = co
var endp = "x.x.x.x:xxxx"
using (ConnectionMultiplexer connection = ConnectionMultiplexer.Connect(endp))
{
IDatabase db = connection.GetDatabase();
ISubscriber subscriber = connection.GetSubscriber();
int f = 0;
subscriber.Subscribe("__keyspace@0__:*", (channel, value) =>
{
if ((string) channel != null)
{
f++;
// Do stuff if some item is added to a hypothethical "users" set in Redis
}
}
);
}
现在我不想得到所有的事件,只想增加计数器。这就足够了,还是我错过了什么?不熟悉这个特定的API,它几乎看起来就像是在事件到达时调用的委托中输入
(true)
循环-你的循环不应该在不同的范围内吗?是的,现在让我们先把它去掉吧,好吧。拼写错误。显示的代码看起来应该可以工作,但当您使用块退出时,将要断开连接;如果你想捕获任何东西,你需要保持连接打开;请注意,2.*中有一个二级订阅API。如果您需要异步工作,它的工作原理类似于通道
如何使此侦听器在所有服务运行时保持活动状态。