文章出處

回到目錄

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這個集群,它也是大勢所趨!

感謝各位的閱讀!

回到目錄

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()