zoukankan      html  css  js  c++  java
  • Redis学习笔记~conf自主集群模式

    回到目录

    Redis自主提供了集群模式,当然也只是比较简单的读写分离模式,或者叫主从模式,它在各个redis服务端自己做数据同步机制,当然就是将主服务端的信息同步到各个slave服务器上,在客户端集成的驱动中,需要指定主节点和从节点的信息,服务端根据各自的conf的文件来实现的,下面我主要说一下两大客户端驱动是实现集群的方式方法。

    服务端配置

    服务端各个从服务器配置如何(6789为主节点的端口,6380为自己节点的端口)

    客户端配置

    ServiceStack.Redis驱动

            /// <summary>
            /// 创建链接池管理对象
            /// </summary>
            private static void CreateManager()
            {
                //redis写服务器集群
                string[] writeServerList = ConfigManager.Config.Redis.WriteServerList.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                //redis读服务器集群
                string[] readServerList = ConfigManager.Config.Redis.ReadServerList.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                RedisClientManagerConfig s = new RedisClientManagerConfig();
                s.MaxWritePoolSize = ConfigManager.Config.Redis.MaxWritePoolSize;
                s.MaxReadPoolSize = ConfigManager.Config.Redis.MaxReadPoolSize;
                s.AutoStart = ConfigManager.Config.Redis.AutoStart;
                prcm = new PooledRedisClientManager(writeServerList, readServerList, s);
            }

    StackExchange.Redis驱动

        /// <summary>
        /// redis队列管理者,简单的队列添加内容,以及实时消费等功能,与Lind.DDD.CachingQueue不同它将会连接到本地的redis服务器 , 
        /// 默认6379端口,多个连接通过逗号分割 。 其他选项在名称的后面包含了一个 “= ”。 例如
        /// var conn = ConnectionMultiplexer.Connect("redis0:6380,redis1:6380,allowAdmin=true");
        /// </summary>
        public class RedisQueueManager
        {
            /// <summary>
            /// redis连接对象
            /// </summary>
            static ConnectionMultiplexer conn = ConnectionMultiplexer.Connect(ConfigConstants.ConfigManager.Config.Redis.Host);
            /// <summary>
            /// 缓存数据库
            /// </summary>
            static IDatabase cache = conn.GetDatabase();

    也可以通过ConfigurationOptions参数来进行配置

    ConfigurationOptions config = new ConfigurationOptions
    {
    EndPoints =
    {
    { "redis0", 6379 },
    { "redis1", 6380 }
    },
    CommandMap = CommandMap.Create(new HashSet<string>
    { 
    "INFO", "CONFIG", "CLUSTER",
    "PING", "ECHO", "CLIENT"
    }, available: false),
    KeepAlive = 180,
    DefaultVersion = new Version(2, 8, 8),
    Password = "changeme"
    };

    当然,它上面代码也可以直接使用下面的字符串来代替,参数化比较灵活

    redis0:6379,redis1:6380,keepAlive=180,version=2.8.8,$CLIENT=,$CLUSTER=,$CONFIG=,$ECHO=,$INFO=,$PING=

    好了,对于redis自主集群模式就介绍到这里,下次我们来说说Redis Cluster这个集群,它也是大势所趋!

    感谢各位的阅读!

    回到目录

  • 相关阅读:
    Python将文件夹下的文件名写入excel方便统计
    Python利用openpyxl带格式统计数据(2)- 处理mysql数据
    Python利用openpyxl带格式统计数据(1)- 处理excel数据
    spfa 算法(队列优化的Bellman-Ford算法)
    bellman_ford算法(边数限制的最短路,边权可能为负)
    堆优化dijkstra
    朴素dijkstra
    1547. 切棍子的最小成本(区间dp)
    1546. 和为目标值的最大数目不重叠非空子数组数目(前缀和+dp)
    32场双周赛(模拟,模拟,前缀和加状态压缩)
  • 原文地址:https://www.cnblogs.com/lori/p/5794454.html
Copyright © 2011-2022 走看看