12、Redis 主从复制
主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master 以写为主,Slave以读为主
他的功能:
- 读写分离,性能扩展
- 容灾快速恢复
主从复制、读写分离。让主Redis服务器负责写入操作,从Redis服务器负责被读取
配置主从复制
1、首先
- 开启daemonize yes
- Pid文件名字pidfile
- 主从配置文件中指定端口port
- Log文件名字
- dump.rdb名字dbfilename
- Appendonly 关掉或者换名字
2、然后
-
创建一个文件夹,在里面将完成主从复制工作的准备
mkdir /myredis
-
在myredis文件夹中复制一份redis.conf文件
cp /etc/redis.conf /myredis/redis.conf
-
分别添加几个主从redis配置文件,例如:redis6379.conf、redis6380.conf。引用刚才复制过来的redis配置文件
-
在添加的这些配置文件中,添加
include /myredis/redis.conf pidfile /var/run/redis_6379.pid port 6379 dbfilename dump6379.rdb 其他文件就改成对应的号码
-
设置从机的优先级,值越小,优先级越高,用于选举主机时使用。默认100。
3、启动主从Redis服务器
[root@localhost bin]# redis-server /myredis/redis6379.conf
[root@localhost bin]# redis-server /myredis/redis6380.conf
[root@localhost bin]# redis-server /myredis/redis6381.conf
[root@localhost bin]# ps -ef | grep redis
root 2999 1 0 11:58 ? 00:00:00 redis-server *:6379
root 3013 1 0 11:59 ? 00:00:00 redis-server *:6380
root 3019 1 0 11:59 ? 00:00:00 redis-server *:6381
root 3025 2189 0 11:59 pts/0 00:00:00 grep --color=autoredis
使用命令登录三个redis
redis -p <port> 指定端口号登录redis
4、查看三台主机运行情况
info replication 打印主从复制的相关信息
经过查看不难看见他们都是master,都是主机。说明这时他们之间还是毫无关联的独立进程
5、配置从服务器
在一个redis中执行命令
slaveof <ip> <port> 让当前redis服务器成为指定ip、port的从服务器
在对两个redis服务器进行命令配置后,再次查看主从信息。就会发现有两台是 slave 从服务器。而那个主服务里面就可以看到有两个从服务器的信息
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6381,state=online,offset=98,lag=1
slave1:ip=127.0.0.1,port=6380,state=online,offset=98,lag=0
master_failover_state:no-failover
master_replid:e29287a2a9d3d059b76bf5ffea643bb155e13e10
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:98
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:98