Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用C订阅Redis事件#_C#_Redis_Publish Subscribe - Fatal编程技术网

C# 如何使用C订阅Redis事件#

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

我有一台使用Redis的远程计算机。我想接收有关it Redis事件(更新、新密钥等)的通知。我已经在线搜索解决方案并登陆StackExchange.Redis,然后我开始创建能够监听Redis事件的windows服务。我找到了一个代码示例:

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。如果您需要异步工作,它的工作原理类似于
通道
如何使此侦听器在所有服务运行时保持活动状态。