NSD NOSQL DAY03
1 案例1:配置redis主从复制
1.1 问题
- 具体要求如下:
- 将主机192.168.4.51作为主库
- 将主机192.168.4.52作为从库
- 测试配置
1.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:配置redis主从复制
1) 配置主从,4.51为主,4.52为从
若主机做过redis集群,需要在配置文件里面把开启集群,存储集群信息的配置文件都关闭,新主机则不用,这里用之前的redis集群做主从,需要还原redis服务器,4.51和4.52都需要还原(以4.51为例)
- [root@redisA ~]# redis-cli -c -h 192.168.4.51 -p 6351 shutdown
- //先关闭redis集群
- [root@redisA ~]# vim /etc/redis/6379.conf
- bind 192.168.4.51
- port 6379
- # cluster-enabled yes
- # cluster-config-file nodes-6351.conf
- [root@redisA ~]# /etc/init.d/redis_6379 start
- Starting Redis server...
- [root@redisA ~]# ss -antlp | grep 6379
- LISTEN 0 511 192.168.4.51:6379 *:* users:(("redis-server",pid=22274,fd=6))
- [root@redisA ~]# redis-cli -h 192.168.4.51
- 192.168.4.51:6379> info replication //查看主从配置信息
- # Replication
- role:master //默认是master 服务器
- connected_slaves:0
- master_replid:eaa14478158a71c41f947eaea036658c2087e8f2
- 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
- 192.168.4.51:6379>
2)配置从库192.168.4.52/24
- 192.168.4.52:6379> SLAVEOF 192.168.4.51 6379 //把52配置为51的从库
- OK
从库查看
- 192.168.4.52:6379> INFO replication
- # Replication
- role:slave
- master_host:192.168.4.51 //主库为4.51
- master_port:6379
- master_link_status:up
- master_last_io_seconds_ago:3
- master_sync_in_progress:0
3)主库查看
- [root@redisA ~]# redis-cli -h 192.168.4.51
- 192.168.4.51:6379> info replication
- # Replication
- role:master
- connected_slaves:1
- slave0:ip=192.168.4.52,port=6379,state=online,offset=14,lag=1 //从库为4.52
- master_replid:db7932eb0ea4302bddbebd395efa174fb079319f
- master_replid2:0000000000000000000000000000000000000000
- master_repl_offset:14
- second_repl_offset:-1
- repl_backlog_active:1
- repl_backlog_size:1048576
- repl_backlog_first_byte_offset:1
- repl_backlog_histlen:14
- 192.168.4.51:6379>
4)反客为主,主库宕机后,手动将从库设置为主库
- [root@redisA ~]# redis-cli -h 192.168.4.51 shutdown //关闭主库
- 192.168.4.52:6379> SLAVEOF no one //手动设为主库
- OK
- 192.168.4.52:6379> INFO replication
- # Replication
- role:master
- connected_slaves:0
- master_replid:00e35c62d2b673ec48d3c8c7d9c7ea3366eac33a
- master_replid2:db7932eb0ea4302bddbebd395efa174fb079319f
- master_repl_offset:420
- second_repl_offset:421
- repl_backlog_active:1
- repl_backlog_size:1048576
- repl_backlog_first_byte_offset:1
- repl_backlog_histlen:420
- 192.168.4.52:6379>
5)哨兵模式
主库宕机后,从库自动升级为主库
在slave主机编辑sentinel.conf文件
在slave主机运行哨兵程序
- [root@redisB ~]# redis-cli -h 192.168.4.52
- 192.168.4.52:6379> SLAVEOF 192.168.4.51 6379
- OK
- 192.168.4.52:6379> INFO replication
- # Replication
- role:slave
- master_host:192.168.4.51
- master_port:6379
- ...
- [root@redisA ~]# /etc/init.d/redis_6379 start
- Starting Redis server...