【问题标题】:What's the usage of StackExchange.Redis on redis cluster modeRedis集群模式下StackExchange.Redis有什么用
【发布时间】:2016-09-20 03:42:53
【问题描述】:

这是使用 stackexchange.redis v1.1.603、.net 4.6、控制台应用程序。 这是我的代码:

using System;
using System.Collections.Generic;
using StackExchange.Redis;

namespace RedisClusterTesting
{
    class Program
    {
        static void Main(string[] args)
        {
            string ip = "192.168.1.20:30001,192.168.1.20:30002,192.168.1.20:30003,resolvedns=1";
            var conf = ConfigurationOptions.Parse(ip);
            conf.CommandMap = CommandMap.Create(new HashSet<string> {
                "INFO", "CONFIG", "CLUSTER","PING", "ECHO", "CLIENT"
            }, false);
            using (ConnectionMultiplexer conn = ConnectionMultiplexer.Connect(conf))
            {
                var db = conn.GetDatabase();
                Do(db);
            }
            Console.ReadKey();
        }
        private static void Do(IDatabase db)
        {
            /*here throws MOVED Exception:MOVED 12182 192.168.1.20:30003*/
            db.StringSet("foo", "changed");
            Console.WriteLine("foo now:" + db.StringGet("foo").ToString());
        }
    }
}

始终显示消息“已移动:12586[192.168.1.20:30003]”。

我搜索了所有的官方文档和互联网,找不到正确的答案。我用redis-cli就可以了。

如何解决这个问题?我是否需要在我的代码中处理异常?如果,如何解决?

【问题讨论】:

  • 我已经修好了。在我解决了另一个问题后它就可以工作了。
  • 你能告诉我们什么问题吗?我有同样的问题

标签: c# redis stackexchange.redis redis-cluster


【解决方案1】:

您似乎遇到了这个问题:https://github.com/StackExchange/StackExchange.Redis/issues/248。如果您在 Connect() 调用和 Do() 调用之间放置 1 秒睡眠,我猜您会看到问题消失。

【讨论】:

  • 谢谢,我会努力的。无论如何,我通过解决另一个问题来解决它。 :)
猜你喜欢
  • 1970-01-01
  • 2021-09-16
  • 2019-03-07
  • 2022-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-26
  • 2019-08-13
相关资源
最近更新 更多