
一:概念
就是我们所说的主从复制,主机数据更新后根据配置和策略。自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。
二:配置
配从库不配主库:配置方式 slaveof 主库ip 主库端口
每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件
修改配置文件细节操作
- 拷贝多个redis.conf文件
- dump.rdb名字 dbfilename dump.rdb //237
- log文件名字 logfile "" //163
- 指定端口 port 6379 //83
- pid文件名字 pidfile /var/run/redis_6379.pid //150
- 开启daemonize yes //128
原来 | 现在
dbfilename dump.rdb| dbfilename dump.rdb
pidfile /var/run/redis_6379.pid| pidfile /var/run/redis_6380.pid
logfile "" | logfile "6380.log"
dbfilename dump.rdb | dbfilename dump6380.rdb
三:常用3招
1.一主二仆:一台主机 二台备机
--1. 先开启三台主机和对应的客户端(用配置文件方式启动)
执行完下面的命令之后 会出现三个src文件(在执行客户端启动的地方)
./redis-server ../../myredis/redis6381.conf
./redis-cli -p 6381
127.0.0.1:6381>KEYS *
--2. 开始配置
执行info replication 查看服务器信息
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
--3.开始主从复制
- 主机执行命令set k1 v1之类的。
- 从机开始配置 SLAVEOF 127.0.0.1 6379。
- 查看从机上也会有相关的数据库信息了。
- 从机不可以set值
- 从机再次执行info replication会出现下面的信息
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:263
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
--4.注意点
从机关闭时:下一次启动会重新变为master 所以要成为从机需要重新执行命令 SLAVEOF 127.0.0.1 6379
主机关闭时:下一次重启时从机会自动默认关联。
2.薪火相传
上一个Slave可以是下一个slave的Master,Slave同样可以接收其他slaves的连接和同步请求,那么该slave作为了链条中下一个的master,可以有效减轻master的写压力。
中途变更转向:会清除之前的数据,重新建立拷贝最新的。
slaveof 新主库IP 新主库端口
3.反客为主
SLAVEOF no one
使当前数据库停止与其他数据库的同步,转成主数据库

4.哨兵模式(sentinel)
反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。
步骤
--1.sentinel.conf
自定义的/myredis目录下新建sentinel.conf文件,名字绝不能错.
--2.monitor
sentinel monitor 被监控数据库名字(自己起名字) 127.0.0.1 6379 1
上面最后一个数字1,表示主机挂掉后salve投票看让谁接替成为主机,得票数多少后成为主机。
3.启动哨兵
./redis-sentinel /myredis/sentinel.conf
开始监控
monitor master mymaster 127.0.0.1 6379 quorum
slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymast
slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymast
4.正常主从演示
断开主机 sentinel.conf 的后台监控显示
换到了6381的端口当了主机
假如原来的6379主机重新启动了 等哨兵监控到会自动成为从机
sdown master mymaster 127.0.0.1 6379
..........
switch-master mymaster 127.0.0.1 6379 127.0.0.1 6381