zoukankan      html  css  js  c++  java
  • 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集群搭建完成

  • 相关阅读:
    PHP学习九--会话控制session和cookie
    PHP学习八--正则表达式
    PHP学习六--类和对象
    PHP学习五--函数
    PHP学习四--数组
    《30天自制操作系统》day08——鼠标控制与32位模式切换
    java 中 静态块的作用
    学习(一)
    asp中 grideview 更新 无法获取值 解决办法
    ASP.NET中的GridView自带的编辑更新功能
  • 原文地址:https://www.cnblogs.com/likui-bookHouse/p/13324033.html
Copyright © 2011-2022 走看看