redis缓存数据库-1主2从3哨兵模式集群搭建

redis-1主2从3哨兵模式搭建

1.架构

主机IP角色
192.168.85.136master
192.168.85.137salve
192.168.85.138salve

2.环境准备

安装包依赖
redis-5.0.4.tar.gzgcc-c++依赖

3.基础安装

  • 各节点安装流程

    # 解压
    tar -xvf [包名]
    
    # 编译安装到指定目录
    make install PREFIX=/usr/local/redis
    
    #创建日志文件夹
    mkdir /usr/local/redis/logs
    
    #创建配置文件目录
    mkdir /usr/local/redis/conf
    
    复制配置文件到软件安装位置
    cp /usr/local/redis-5.0.4/redis.conf  	 /usr/local/redis/conf
    cp /usr/local/redis-5.0.4/sentinel.conf  /usr/local/redis/conf
    

4.主从搭建

4.1 master配置

  • redis.conf配置

    # 所有ip均可访问
    bind 0.0.0.0
    
    # 启动端口6379
    port 6379
    
    # redis进程是否以守护进程的方式运行,yes为是,no为否(不以守护进程的方式运行会占用一个终端)
    protected-mode no
    
    # 是否开启保护模式,默认开启。要是配置里没有指定bind和密码,开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码和bind,可以开启。否则最好关闭设置为no
    daemonize yes
    
    # 日志
    logfile /usr/local/redis/logs/redis.log
    
    # 设置redis连接密码,如果配置了连接密码,客户端在连接redis是需要通过auth <password>命令提供密码,默认关闭
    requirepass 123456
    
    # 当master设置了密码保护时,slave服务连接master的密码(主从配置时,必须要设置此密码)
    masterauth 123456
    
    

4.2 salve配置

  • redis.conf配置

    注意:老版本使用slaveof指定主机的IP和端口,新版本使用replicaof指定主机的IP和端口
    注意:由于搭建的集群需要自动容灾切换,主数据库可能会变成从数据库,所以三台机器上都需要同时设置 requirepass 和 masterauth 配置项
    
    bind 0.0.0.0
    port 6379
    protected-mode no
    daemonize yes
    logfile ./redis.log
    
    # 当master设置了密码保护时,slave服务连接master的密码(主从配置时,必须要设置此密码)
    requirepass 123456
    masterauth 123456
    
    # 指定当本机为slave服务,设置master服务的IP地址及端口,在redis启动的时候会自动跟master进行数据同步,所以两台从机同样配置。
    slaveof 192.168.85.136 6379 
    
    

5.哨兵配置

5.1 所有节点配置

  • sentinel.conf配置

    哨兵模式需要修改sentinel.conf文件,三台服务器均为此配置
    
    # 端口默认为26379。
    port 26379
    
    # 关闭保护模式,可以外部访问。
    protected-mode no
    
    # 设置为后台启动。
    daemonize yes
    
    # 日志文件。
    logfile /usr/local/redis/logs/sentinel.log
    
    # 指定主机IP地址和端口(三台配置均为指定主机ip),并且指定当有2台哨兵认为主机宕机,则对主机进行容灾切换。mymaster:设置master名字,必须在其它有用到该名字的命令之前设置
    sentinel monitor mymaster 192.168.85.136 6379 2
    
    # 当在Redis实例中开启了requirepass,这里就需要提供密码。
    sentinel auth-pass mymaster 123456
    
    # 这里设置了主机多少秒无响应,则认为挂了。此处3秒
    sentinel down-after-milliseconds mymaster 3000
    
    # 主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的1。
    snetinel parallel-syncs mymaster 1
    
    # 故障转移的超时时间,这里设置为三分钟。
    sentinel failover-timeout mymaster 180000
    
    

6.启动

6.1 启动redis

  • 命令

    /usr/local/redis/bin/redis-server  /usr/local/redis/conf/redis.conf
    

6.2 启动sentinel

  • 命令

    /usr/local/redis/bin/redis-sentinel  /usr/local/redis/conf/sentinel.conf
    

7.启动状态查看

7.1 master节点

  • 命令

    [root@hadoop01 bin]# ./redis-cli -h 192.168.85.136
    192.168.85.136:6379> auth 123456
    OK
    192.168.85.136:6379> info replication
    # Replication
    role:master
    connected_slaves:2
    slave0:ip=192.168.85.137,port=6379,state=online,offset=1302,lag=1
    slave1:ip=192.168.85.138,port=6379,state=online,offset=1302,lag=0
    master_replid:71a5ac956722b35494785cfe74c9fef9745d7198
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:1302
    second_repl_offset:-1
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:1
    repl_backlog_histlen:1302
    

在这里插入图片描述

7.2 salve节点

  • 命令

    [root@hadoop01 bin]# ./redis-cli -h 192.168.85.137
    192.168.85.137:6379> auth 123456
    OK
    192.168.85.137:6379> info replication
    # Replication
    role:slave
    master_host:192.168.85.136
    master_port:6379
    master_link_status:up
    master_last_io_seconds_ago:1
    master_sync_in_progress:0
    slave_repl_offset:1218
    slave_priority:100
    slave_read_only:1
    connected_slaves:0
    master_replid:71a5ac956722b35494785cfe74c9fef9745d7198
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:1218
    second_repl_offset:-1
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:1
    repl_backlog_histlen:1218
    

    在这里插入图片描述

8.效果验证

8.1 主写从读

  • 步骤

    • 主节点

      192.168.85.136:6379> set test test
      OK
      
    • 从节点

      192.168.85.137:6379> keys *
      1) "test"
      

8.2 主挂从起

  • 步骤

    • 主节点手动下线

      192.168.85.136:6379> shutdown
      not connected> 
      
    • 新的主机被选举出,则表示成功

      在这里插入图片描述

9.其他

9.1 springboot配置

  • 配置文件application.yarm

    redis:
    	#单机配置
    	#host: 192.168.43.188
    	#port: 6379
    	timeout: 6000
    	password: 123456
    	#哨兵增加的配置
    	sentinel:
    	  nodes: 192.168.130.1:26379,192.168.130.2:26379,192.168.130.3:26379
    	  master: mymaster
    	#lettuce连接池配置
    	lettuce:
    	  pool:
    		max-active:  100 # 连接池最大连接数(使用负值表示没有限制)
    		max-idle: 100 # 连接池中的最大空闲连接
    		min-idle: 50 # 连接池中的最小空闲连接
    		max-wait: 6000 # 连接池最大阻塞等待时间(使用负值表示没有限制
    
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咚个里个咚咚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值