• redis 主从 + 哨兵模式集群部署(3 台机器部署方案)


    前言

    本文只讲如何部署,然后会贴出具体配置,以及如何验证是否部署成功(redis 版本采用 4.0.6 )。既不会介绍 redis 如何安装(本人采用源码安装方式),也不会涉及主从复制,哨兵模式具体原理及工作机制等内容。 后续会再补充 ~

    配置

    关于 redis 的配置文件 redis.conf 的配置项,请参考

    Redis配置文件详解, 下面贴出的配置只会粗略讲解。

    机器分配

    名称机器 1机器2机器2
    host 10.211.55.8 10.211.55.9 10.211.55.11
    端口 6379 6379 6379
    角色1 master slave 01 slave 02
    角色2 sentinel 01 sentinel 02 sentinel 03

    提示

    看到这里,请先提前关闭三台机器的防火墙。防火墙不关闭,会出现 master 的数据不会同步到 slave 节点的情况

    -- 关闭防火墙! -- 关闭防火墙! -- 关闭防火墙!

    机器1 配置(master)(10.211.55.8)

    redis.conf

    # 如果为 yes 只能通过(127.0.0.1)访问
    protected-mode no
    
    # 端口
    port 6379
    
    # 用守护线程的方式启动
    daemonize yes
    
    # pid 文件
    pidfile ./redis.pid
    
    # 日志
    logfile ""
    
    # 数据库数量
    databases 16
    
    # 开启 rdb 并设置备份规则
    save 900 1 
    save 300 10
    save 60 10000 
    
    # rdb 以及 aof 备份文件
    dir ./
    
    # rbd 文件名
    dbfilename dump.rdb
    
    # 密码
    requirepass abc123!@#
    
    # 主从配置,slave 访问 master 需要密码
    masterauth  abc123!@#
    
    # Sentinel 模块的配置
    slave-priority 100
    
    

    sentinel.conf

    protected-mode no
    daemonize yes
    # sentinel 端口
    port 26379
    
    dir ./
    
    # 注意
    sentinel monitor mymaster 10.211.55.8 6379 2
    # 密码
    sentinel auth-pass mymaster  abc123!@# 
    sentinel down-after-milliseconds mymaster 30000
    sentinel parallel-syncs mymaster 1
    sentinel failover-timeout mymaster 180000
    logfile ./sentinel.log
    

    机器 2 配置(slave 01)(10.211.55.9)

    slave 节点的配置只比 master 多了一个slaveof 10.211.55.8 6379

    redis.conf

    protected-mode no
    port 6379
    daemonize yes
    pidfile ./redis.pid
    logfile ""
    databases 16
    save 900 1
    save 300 10
    save 60 10000
    dir ./
    dbfilename dump.rdb
    requirepass abc123!@#
    
    # 跟 master 的区别,多了此配置
    slaveof 10.211.55.8 6379
    masterauth abc123!@#
    slave-priority 100
    
    

    sentinel.conf

    protected-mode no
    daemonize yes
    # sentinel 端口
    port 26379
    dir ./
    sentinel monitor mymaster 10.211.55.8  6379 2
    sentinel auth-pass mymaster QpLpYnh619!
    sentinel down-after-milliseconds mymaster 30000
    sentinel parallel-syncs mymaster 1
    sentinel failover-timeout mymaster 180000
    
    logfile ./sentinel.log
    
    

    机器 3 配置 (slave 02) (10.211.55.11)

    省略。。 跟机器 2 配置一样!!!! 当然如果密码不一样,你就改一下

    验证

    请确认防火墙已经关闭 !!!!!!

    首先验证主从复制,然后再验证哨兵模式是否成功,

    源码安装方式,如果不指定参数,redis 启动脚本默认安装在 /usr/local/bin/ 下面

    配置文件还是在 redis 的安装目录

    验证主从复制

    1. 进入master 的 redis 解压目录

    2. 启动 redis /usr/local/bin/redis-server redis.conf

    3. 分别进入两个 slave 机器的 redis 目录 ,执行步骤 2

    4. 在 master 上通过客户端连接 redis 服务端,即执行以下命令

       	/usr/local/bin/redis-cli -a abc123![@#](https://my.oschina.net/u/2839266)      
       	------------------
       	abc123![@#](https://my.oschina.net/u/2839266) 是密码
      
    5. 在 redis 命令行上,执行 info replication 命令, 验证主从关系

       	# Replication
       	role:master (当前节点为 master)
       	connected_slaves:2   (2 个slave 节点)
       	slave0:ip=10.211.55.9,port=6379,state=online,offset=535,lag=1
       	slave1:ip=10.211.55.11,port=6379,state=online,offset=535,lag=1
       	master_replid:dbe7d07a45a521b1feb44117f9872bfde259aec3
       	master_replid2:0000000000000000000000000000000000000000
       	master_repl_offset:535
       	second_repl_offset:-1
       	repl_backlog_active:1
       	repl_backlog_size:1048576
       	repl_backlog_first_byte_offset:1
       	repl_backlog_histlen:535
      
    6. 在 master 上添加数据,看 slave 上是否会同步数据

    验证 sentinel

    1. 分别在三台机器上,进入 redis 解压目录,依次执行

       /usr/local/bin/redis-sentinel sentinel.conf
      
    2. 连接任意 sentinel 节点,

       redis-cli -h 10.211.55.9 -p 26379 -a abc123![@#](https://my.oschina.net/u/2839266) 
      
    3. 在 redis 命令行上,执行 info sentinel 命令, 验证 sentinel 状态,

       # Sentinel
       sentinel_masters:1
       sentinel_tilt:0
       sentinel_running_scripts:0
       sentinel_scripts_queue_length:0
       sentinel_simulate_failure_flags:0
       master0:name=mymaster,status=ok,address=10.211.55.9:6379,slaves=2,sentinels=3
      

    总结

    以上配置,亲测有效! 如有疑问,请留言~

  • 相关阅读:
    个人阅读作业1
    个人项目-词频统计
    Android中BroadcastReceiver的两种注册方式(静态和动态)详解
    JAVA装饰者模式(从现实生活角度理解代码原理)
    博客维护停止,需要的伙伴们移步http://blog.csdn.net/panhouye
    Android中EditText设置输入条件
    Andriod中自定义Dialog样式的Activity点击空白处隐藏软件盘(Dialog不消失)
    Android中调用文件管理器并返回选中文件的路径
    java中打印实心菱形以及空心菱形的方法
    Android中使用findViewByMe提升组件查找效率
  • 原文地址:https://www.cnblogs.com/yaoyangding/p/14809199.html
Copyright © 2020-2023  润新知