1、Redis主从复制
主从复制,就是主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主
2、用处
(1)读写分离,性能扩展
(2)容灾快速恢复
3、步骤
(1)配从(服务器)不配主(服务器)
(2)拷贝多个redis.conf文件
(3)开启daemonize yes
(4)Pid文件名字
(5)指定端口
(6)Log文件名字
(7)Dump.rdb名字
(8)Appendonly 关掉或者换名字
[root@hadoop102 redis-3.2.5]# vim redis6379.conf
include /myredis/redis.conf
port 6379
pidfile /var/run/redis_6379.pid
dbfilename dump6379.rdb
slave-priority 100
slaveof 127.0.0.1 6379
[root@hadoop102 redis-3.2.5]# cp redis6379.conf redis6380.conf
[root@hadoop102 redis-3.2.5]# cp redis6379.conf redis6381.conf
[root@hadoop102 redis-3.2.5]# vim redis6381.conf
:%s/6379/6381
注: :%s/6379/6381 vim编辑器中 全局替换6379->6381
slave-priority 100 哨兵模式中,主机挂了,选新皇帝的依据,越小,优先级越高
起服务
[root@hadoop102 redis-3.2.5]# redis-server redis6379.conf
[root@hadoop102 redis-3.2.5]# redis-server redis6380.conf
[root@hadoop102 redis-3.2.5]# redis-server redis6381.conf
[root@hadoop102 redis-3.2.5]# ps -ef | grep redis
[root@hadoop102 redis-3.2.5]# redis-cli -p 6379
127.0.0.1:6379>
[root@hadoop102 redis-3.2.5]# redis-cli -p 6380
127.0.0.1:6380>
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
127.0.0.1:6379>
创建某个实例的从服务器
slaveof <ip> <port>
宗旨是配从不配主,在从机上配置
127.0.0.1:6380> slaveof 127.0.0.1 6379
127.0.0.1:6381> slaveof 127.0.0.1 6379
127.0.0.1:6379> info replication
127.0.0.1:6380> info replication
127.0.0.1:6381> info replication
创建主从关系后,从机有主机的全部数据
主机挂了,从机如何自处?
从机死等
127.0.0.1:6379> shutdown
127.0.0.1:6380> info replication
127.0.0.1:6381> info replication
[root@hadoop102 redis-3.2.5]# redis-server redis6379.conf
[root@hadoop102 redis-3.2.5]# redis-cli -p 6379
127.0.0.1:6379> set k100 v100
ok
127.0.0.1:6380> get k100
"v100"
从机挂了,主机不变,从机活过来了,又如何自处?
主要看之前如何变成从机的,通过命令方式,重启后便不是从机
127.0.0.1:6380> slaveof 127.0.0.1 6379
配置在配置文件里面,活过来 还是从机,一生一世的好奴才
[root@hadoop102 myredis]# vim redis6380.conf
slaveof 127.0.0.1 6379