Redis支持集群功能。为了保证单一节点可用性,redis支持主从复制功能。每个节点有N个复制品(replica),其中一个复制品是主(master),另外N-1个复制品是从(Slave),也就是说Redis支持一主多从。一个主可有多个从,而一个从又可以看成主,它还可以有多个从。
1、主从优点
增加单一节点的健壮性,从而提升整个集群的稳定性,Redis中当超过1/2节点不可用时,整个集群不可用。从节点可以对主节点数据备份,提升容灾能力。读写分离:在redis主从中,主节点一般用作写(具备读的能力),从节点只能读,利用这个特性实现读写分离,写用主,读用从。
2、一主多从搭建
(1)在已经搭建的单机版redis基础上进行操作,并且关闭redis单机版。
./redis-cli shutdown
(2)新建目录
# mkdir /usr/local/replica
(3)复制目录
把之前安装的redis单机版中bin目录复制三份,分别叫做:master、slave1、slave2
# cp -r /usr/local/redis/bin /usr/local/replica/master
# cp -r /usr/local/redis/bin /usr/local/replica/slave1
# cp -r /usr/local/redis/bin /usr/local/replica/slave2
(4)修改从的配置文件
修改2个从的redis.conf,指定主节点ip和端口。并修改自身端口号防止和其他redis冲突。
# vim /usr/local/replica/slave1/redis.conf
修改自己端口
port 6380
指定主节点ip和端口
replicaof 192.168.1.129 6379
# vim /usr/local/replica/slave2/redis.conf
修改自己端口
port 6381
指定主节点ip和端口
replicaof 192.168.1.129 6379
(5)启动三个redis实例
注意:一定要关闭单机的redis,否则端口冲突。
# cd /usr/local/replica
# vim startup.sh
在文件中添加下面内容:
cd /usr/local/replica/master/
./redis-server redis.conf
cd /usr/local/replica/slave1
./redis-server redis.conf
cd /usr/local/replica/slave2
./redis-server redis.conf
效果图如下:
赋予权限
# chmod a+x startup.sh
开启
# ./startup.sh
(6)查看启动状态
# ps aux|grep redis
效果图如下:
(7)测试
# cd /usr/local/replica/master/
# ./redis-cli
在客户端命令行模式下,添加一条数据:
set testname testvalue
进去slave查看数据是否同步
# cd /usr/local/replica/slave1
# ./redis-cli -p 6380
ctrl+c 退出slave1
# ./redis-cli -p 6381
效果图如下: