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集群搭建完成


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM