zoukankan      html  css  js  c++  java
  • Redis集群搭建

    笔记:记录Redis集群搭建,伪集群示例

    修改配置

    将Redis配置文件复制几份,集群有几个节点就复制几份,修改以下配置,将每个节点的以下配置中的所有的6379,替换为此节点的端口号(如果集群不在一个机器上则忽略),为了不让生成的RDB等数据文件名字冲突和端口冲突。

    # 将bind这一行注释掉,或者修改为0:0:0:0,这表示任意地址都可以连接此Redis服务
    # bind 127.0.0.1
    
    # 关闭保护模式,如果开启的话,外部服务就连不上Redis
    protected-mode no
    
    # 配置redis的端口号
    port 6379
    
    # 以守护进程运行(后台运行redis)
    daemonize yes
    
    # 服务启动后记录线程号的文件
    pidfile "/var/run/redis_6379.pid"
    
    # 日志文件名字
    logfile "6379.log"
    
    # 数据库的个数
    databases 16
    
    # 设置数据保存到数据文件中的save规则,3600秒内修改1次key,进行一次磁盘保存操作
    save 3600 1
    save 300 100
    save 60 10000
    
    # 指定存储至本地数据库时是否压缩数据,默认是yes,redis采用LZF压缩,需要消耗CPU资源
    rdbcompression yes
    
    # 保存rdb文件时,是否对rdb文件进行校验
    rdbchecksum yes
    
    # 保存数据的文件名字
    dbfilename "dump6379.rdb"
    
    # 数据保存路径,是一个目录,这个目录需要提前创建出来
    dir "/opt/apps/redis"
    
    
    # 是否开启aof,指出是否在每次更新操作后进行日志记录,如果不开启,
    # 可能会在断电时导致一段时间内的数据丢失,
    # 因为redis本身同步数据文件是按上面的save条件来同步的,
    # 所以有的数据会在一段时间内只存在于内存中
    appendonly yes
    
    # aof文件名字
    appendfilename "appendonly6379.aof"
    
    # 集群配置文件,自动生成,不能人为维护
    cluster-config-file "nodes-6379.conf"
    

    节点规划

    节点 类型 端口
    redis6379 主(master) 6379
    redis6380 从(slave1) 6380
    redis6381 从(slave2) 6381

    根据规划,将上面的配置复制三份,分别是redis6379.confredis6380.confredis6381.conf,把文件里面的6379,分别改成:637963806381

    启动集群

    执行以下命令,启动集群的三个节点,启动之后,可以查看Redis进程

    redis-server redis6379.conf
    redis-server redis6380.conf
    redis-server redis6381.conf
    

    image

    使用客户端redis-cli连接Redis:

    redis-cli -p 6379
    redis-cli -p 6380
    redis-cli -p 6381
    

    因为规划的是redis6380redis6381节点是节点,所以要让节点跟随节点。在 redis6380redis6381 节点上,执行SLAVEOF 127.0.0.1 6379命令,让它们作为 redis6379 的从节点

    # 在redis6380上执行
    127.0.0.1:6380> SLAVEOF 127.0.0.1 6379
    OK Already connected to specified master
    
    # 在redis6381上执行
    127.0.0.1:6381> SLAVEOF 127.0.0.1 6379
    OK Already connected to specified master
    

    然后在主节点或者从节点上执行info replication命令可以查看状态,出现以下信息即表示成功:

    主节点查看:
    image
    从节点查看:
    image

    哨兵(Sentinel)模式

    创建一个文件sentinel.conf,加入以下内容(也可以在此配置文件中加入其他配置)

    sentinel monitor myredis 127.0.0.1 6379 1
    

    然后执行redis-sentinel sentinel.conf命令启动哨兵,此时,如果redis6379主节点挂了,哨兵节点会选择新的主节点。
    测试将主节点shutdown,稍等几秒,哨兵会在从节点中重新选择新的主节点:

    • 原主节点:
      image

    • 哨兵
      image

    • 新主节点
      image

    redis6381 节点被选为新的主节点,如果redis6379再次连接上,那他也是redis6381的从节点;

    本文来自博客园,作者:祖国滴粑粑花,转载请注明原文链接:https://www.cnblogs.com/rxx1005/p/15754565.html

  • 相关阅读:
    C错误调试:当前不会命中断点。没有与此行关联的可执行代码
    将不同的数据写入不同的文件中
    UMFPACK调用的接口
    求解压力备份()
    用C++实现向量二范数
    编写参考文献的方法
    改写UMFPACK算例中的压缩方式(二)
    div文字多行展示,多出的文字用省略号代替
    Internet Explorer Developer Toolbar 中文
    (转帖)天下第七C#学习笔记(3)
  • 原文地址:https://www.cnblogs.com/rxx1005/p/15754565.html
Copyright © 2011-2022 走看看