CSRedisCore集羣搭建

我們都知道redis是內存數據庫,數據都存儲在內存當中,當redis服務宕機了,就沒有可用的服務了,請求數據就會失敗,所以我們需要搭建多個服務(集羣),當單個服務崩潰後,其他服務選擇一個替代死掉的服務,繼續工作。提高程序的穩定性。廢話不多說了。

將壓縮包解壓然後複製,總共3份,我們搭建1主2從模式,redis6379(主),redis6479(從),redis6579(從)

 

 

主redis配置,進入redis6379目錄中,配置 redis.windows.conf

#配置IP綁定
bind 0.0.0.0
#配置端口
port 6379
#是否保護模式
protected-mode no

目錄下加個run.bat文件,便於雙擊啓動服務

redis-server redis.windows.conf

從Redis配置,分別進入redis6479和redis6579目錄,配置redis.windows.conf,並添加run.bat文件

#配置IP綁定
bind 0.0.0.0
#配置端口
port 6479
#是否保護模式
protected-mode no
#配置主redisd的IP和端口  
replicaof 127.0.0.1 6579

 

現在Redis配置好了,運行3個Redis目錄中的run.bat啓動服務,運行後可以看到主從都成功連接。

 

 

搭建哨兵

實際使用中一般會使用多個哨兵進行監控,本文作了簡化,只使用1個哨兵,多個哨兵都是相同的配置,僅區分端口。

將Redis目錄複製一份命名爲RedisSentinel,添加sentinel.conf文件,內容如下:

 

 

#哨兵運行IP和端口
bind 127.0.0.1
port 27000 
#非保護模式運行
protected-mode no 
#監控的主Redis的IP和端口,1表示1個哨兵
sentinel monitor redis-master 127.0.0.1 6379 1 
#主機掉線以後5s進行認證,如果無法連接則重新由哨兵從slave中選出新的master
sentinel down-after-milliseconds redis-master 5000 
sentinel failover-timeout redis-master 60000

cmd通過命令運行哨兵 :

redis-server sentinel.conf --sentinel

啓動成功

 

 也可通過命令查看哨兵狀態

redis-cli -p 27000 info sentinel

 

 

創建控制檯應用程序,

 static void Main(string[] args)
        {           
            //var csredis = "127.0.0.1:27000,password=123456,defaultDatabase=1,prefix=";
            //連接哨兵,並初始化
            RedisHelper.Initialization(new CSRedis.CSRedisClient("redis-master",new string[] { "127.0.0.1:27000"}));
            while (true)
            {
                Test();
            }
            Console.ReadKey();
        }

        static void Test()
        {
            try
            {
                // 列表
                //刪除指定key的列表
                RedisHelper.Del("list");

                RedisHelper.RPush("list", "第一個元素");
                RedisHelper.RPush("list", "第二個元素");
                Console.WriteLine($"list的長度爲{RedisHelper.LLen("list")}");
                Console.WriteLine($"list的第二個元素爲{RedisHelper.LIndex("list", 1)}");
                Thread.Sleep(1000);
            }
            catch (Exception ex)
            {
                Console.WriteLine("error:"+ex.Message);
            }
           

        }

執行結果:

 

 這樣一個簡易的redis集羣搭建完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章