Redis-高效的NoSQL数据库之Redis主从复制
前言
Redis不仅支持集群功能,为了保证单一节点可用性,redis还支持主从复制功能。每个节点有N个复制品(replica),其中一个复制品是主(master),另外N-1个复制品是从(Slave),也就是说Redis支持一主多从。一个主可有多个从,而一个从又可以看成主,它还可以有多个从。
一、主从复制功能的优点
- 增加单一节点的健壮性,从而提升整个集群的稳定性。(Redis中当超过1/2节点不可用时,整个集群不可用)
- 从节点可以对主节点数据备份,提升容灾能力。
- 读写分离。在redis主从中,主节点一般用作写(具备读的能力),从节点只能读,利用这个特性实现读写分离,写用主,读用从。
二、一主多从的搭建
在已经搭建的单机版redis基础上进行操作。(搭建单机版redis参考)
1. 搭建前准备
关闭redis单机版
./redis-cli shutdown
创建目录,并且安装的redis单机版中bin目录复制三份,分别叫做:master、slave1、slave2
mkdir /usr/local/replica
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
2. 修改从的配置文件
修改2个从的redis.conf,指定主节点ip和端口。并修改自身端口号防止和其他redis冲突。
**slave1**
vim /usr/local/replica/slave1/redis.conf
#指定主节点ip和端口
replicaof 192.168.1.126 6379
#修改自己端口
port 6380
**slave2**
vim /usr/local/replica/slave2/redis.conf
#指定主节点ip和端口
replicaof 192.168.1.126 6379
#修改自己端口
port 6381
3. 编辑启动脚本并且启动三个实例。
提示:一定要关闭单机的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
#查看启动状
ps aux|grep redis
3. 测试
启动客户端
cd /usr/local/replica/master/
./redis-cli
在客户端命令行模式下,添加一条数据:
进去slave查看数据是否同步。
cd /usr/local/replica/slave1
./redis-cli -p 6380
图片显示数据已经同步到从节点。