Redis主从结构

环境准备 恢复默认配置

[root@redis2 ~]# vim /etc/redis/6379.conf          # 818行 826行 832行 注释掉

# cluster-enabled yes
# cluster-config-file nodes-6379.conf
# cluster-node-timeout 5000

[root@redis2 ~]# service redis_6379 stop Stopping ... Redis stopped [root@redis2 ~]# ls /var/lib/redis/6379/ dump.rdb [root@redis2 ~]# rm -rf /var/lib/redis/6379/* [root@redis2 ~]# service redis_6379 start Starting Redis server...

Redis操作同上

默认Redis都是主服务器(1.12)

[root@redis2 ~]# redis-cli 127.0.0.1:6379> info replication

Replication

role:master connected_slaves:0

master_replid:7905c779df139303c4e01aca1b71afc5024cb4a4 master_replid2:0000000000000000000000000000000000000000

master_repl_offset:0 second_repl_offset:-1 repl_backlog_active:0

repl_backlog_size:1048576

repl_backlog_first_byte_offset:0

repl_backlog_histlen:0

配置主从 Redis3 为Redis2 的从服务器(1.13)

[root@redis3 ~]# redis-cli 127.0.0.1:6379> slaveof 192.168.1.12 6379 OK 127.0.0.1:6379> info replication

Replication

role:slave master_host:192.168.1.12 master_port:6379

master_link_status:down

master_last_io_seconds_ago:-1

master_sync_in_progress:0

slave_repl_offset:0

master_link_down_since_seconds:1627033715

slave_priority:100 slave_read_only:1

connected_slaves:0

master_replid:3b5398844225df1ddd730b4ea5bb4ac7e2d16708 master_replid2:0000000000000000000000000000000000000000

master_repl_offset:0

second_repl_offset:-1

repl_backlog_active:0

repl_backlog_size:1048576

repl_backlog_first_byte_offset:0

repl_backlog_histlen:0

配置永久

[root@redis3 ~]# vim /etc/redis/6379.conf

#配置文件中283行 写主服务器IP

slaveof 192.168.1.11 6379

slaveof no one #取消配置

添加密码

主服务器

[root@redis2 ~]# vim +501 /etc/redis/6379.conf

requirepass tedu.cn

[root@redis2 ~]# vim +43 /etc/init.d/redis_6379

  $CLIEXEC -p $REDISPORT -a tedu.cn shutdown

[root@redis2 ~]# service redis_6379 restart #重启服务 Stopping ... Redis stopped Starting Redis server...

从服务器

[root@redis3 ~]# vim +283 /etc/redis/6379.conf

masterauth tedu.cn

[root@redis3 ~]# service redis_6379 restart #重启服务 Stopping ... Redis stopped Starting Redis server... [root@redis3 ~]# redis-cli 127.0.0.1:6379> info replication

Replication

role:slave #角色为从 master_host:192.168.1.12 #主服务器IP master_port:6379 master_link_status:down master_last_io_seconds_ago:-1 master_sync_in_progress:0 slave_repl_offset:1 master_link_down_since_seconds:1627035959 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:dc63daf3a06afa4aa86f1b517bf7b2aad6a65223 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:0 second_repl_offset:-1 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0

/var/log/redis_6379.log #日志文件

哨兵服务

 在redis服务器(如redis1)上,拷贝哨兵程序到哨兵服务器
[root@redis1 ~]# scp -r /usr/local/redis 192.168.1.19:/usr/local

# 在sentinel1上,将redis命令目录添加至PATH环境变量
[root@sentinel1 ~]# echo 'export PATH=$PATH:/usr/local/redis/bin' >> /etc/bashrc
[root@sentinel1 ~]# source /etc/bashrc

# 创建哨兵配置文件
[root@sentinel1 ~]# vim /etc/sentinel.conf
sentinel monitor redis1 192.168.1.11 6379 1   # 监视主服务器
bind 0.0.0.0    													  # 哨兵服务运行地址
sentinel auth-pass redis1 tedu.cn		 # 连接主服务器的密码
  • 启动哨兵服务
[root@sentinel1 ~]# redis-sentinel /etc/sentinel.conf
30557:X 12 May 10:12:44.026 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
30557:X 12 May 10:12:44.026 # Redis version=4.0.8, bits=64, commit=00000000, modified=0, pid=30557, just started
30557:X 12 May 10:12:44.026 # Configuration loaded
30557:X 12 May 10:12:44.028 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 4.0.8 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379
 |    `-._   `._    /     _.-'    |     PID: 30557
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

30557:X 12 May 10:12:44.033 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
30557:X 12 May 10:12:44.049 # Sentinel ID is 40460aaa4df5543a000bf8f464c6698a712d2697
30557:X 12 May 10:12:44.049 # +monitor master redis1 192.168.1.11 6379 quorum 1
30557:X 12 May 10:12:44.051 * +slave slave 192.168.1.12:6379 192.168.1.12 6379 @ redis1 192.168.1.11 6379

测试配置

# 停止主服务器redis1的redis服务
[root@redis1 ~]# service redis_6379 stop
Stopping ...
Redis stopped

# 在redis2上查看redis服务状态
[root@redis2 ~]# redis-cli
127.0.0.1:6379> info replication
# Replication
role:master              # 已经变为主服务器
connected_slaves:0
master_replid:da33c07e16dc1b90d14a20004e9f5d9b3a7b9081
master_replid2:94e2bea7fc81fa71b1193df29b0984190c01bacc
master_repl_offset:10054
second_repl_offset:8936
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:10054

 启动redis1,查看redis1信息

[root@redis1 ~]# service redis_6379 start
Starting Redis server...

[root@redis1 ~]# redis-cli -a tedu.cn
127.0.0.1:6379> info replication
# Replication
role:slave             				# 角色为从服务器
master_host:192.168.1.12       # 主服务器地址
master_port:6379               # 主服务器端口
master_link_status:up          # 到主服务器的连接状态
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:62014
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:da33c07e16dc1b90d14a20004e9f5d9b3a7b9081
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:62014
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:61430
repl_backlog_histlen:585
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值