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

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