redis主从复制目的就是避免单点故障
搭建一主两从,将6379作为主机,6381与6380作为slave
两个slave 一个master
主从复制,不会阻塞master,同步数据时,master仍可以处理客户端的请求
cd usr/local
ls
cp -r redis redis_6380
cp -r redis redis_6381
mv redis redis_6379
ll |grep redis
将redis_6380录下的配置文件中port端口改成6380,将redis_6381目录下的配置文件中port端口改成6381
cd redis_6380
vim redis.conf
在6379上启动服务
cd usr/local/redis_6379/bin 下执行./redis-server …/conf/redis_conf
再去6380在6380上启动服务
cd usr/local/redis_6380/bin 下执行./redis-server …/conf/redis_conf
再去6381在6381上启动服务
cd usr/local/redis_6381/bin 下执行./redis-server …/conf/redis_conf
cd /usr/local/redis_6379/bin执行redis-cli -p 6379
执行info,6379是主机
cd /usr/local/redis_6380/bin执行redis-cli -p 6380
执行info,6380是从机
cd /usr/local/redis_6381/bin执行redis-cli -p 6381
执行info,6381是从机
主机可读可写
从机不可写只读
模拟主机挂掉
将6379的进程杀掉
再去连接,就拒绝连接
将另一个从机6380设置为主机,首先cd /usr/local/redis_6380/bin,
redis-cli -p 6380
info
改从机为主机,slaveof no one
再进行infor replication查看信息变为主机
cd /usr/local/redis_6381/redis.conf
redis-cli 6381
slaveof 127.0.0.1 6380
此时6379已经挂了,现在6380为主机,6381为从机
即主机6380可读可写
6381只读不可写
模拟6379已修复,启动./redis-server …/conf/redis.conf,ps -ef |grep redis
6379是主机,但是之前配置从机信息已失效,里面的值也为空,6380仍是6381的主机
缺点就是手动故障转移