目录
1. 搭建主从架构
单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。
2. 集群搭建
共包含三个节点,一个主节点,两个从节点。
准备实例和配置:
要在同一台虚拟机开启3个实例,必须准备三份不同的配置文件
1)创建目录
我们创建一个文件夹,用来存放集群的配置文件:
cd /root
# 创建目录
mkdir redis-cluster
进入目录
cd redis-cluster
将所有配置文件中的持久化模式改为默认的RDB模式
这里配置文件需要分别修改端口号为6380、6381、6382 和生成的多dump.rdb持久化文件名以便区分
3. 启动
进入redis-cluster目录 分别启动redis
redis-server redis6380.conf
redis-server redis6381.conf
redis-server redis6382.conf
开三个窗口进行查看:
启动成功后:
4. 开启主从关系
现在三个实例还没有任何关系,要配置主从可以使用replicaof 或者slaveof(5.0以前)命令
有临时和永久两种模式:
-
修改配置文件(永久生效)
-
在redis.conf中添加一行配置:
slaveof <masterip> <masterport>
-
-
使用redis-cli客户端连接到redis服务,执行slaveof命令(重启后失效):
slaveof <masterip> <masterport>
注意:在5.0以后新增命令replicaof,与salveof效果一致。
通过redis-cli命令连接6381:
redis-cli -p 6381
通过redis-cli命令连接6382:
redis-cli -p 6382
连接成功
此时已连接上三台redis服务 查看是否具有主从关系
info replication
此时发现每台服务都是主节点
那么我们在6381和6382服务 分别输入以下命令 让其成为6380的从节点
slaveof 192.168.187.165 6380
此时就达成了和6380的主从关系
查看master节点6380:
5. 测试
执行下列操作以测试:
-
利用redis-cli连接6380,执行
set num 123
-
利用redis-cli连接6381,执行
get num
,再执行set num 666
-
利用redis-cli连接6382,执行
get num
,再执行set num 888
可以发现,只有在6380这个master节点上可以执行写操作,6381和6382这两个slave节点只能执行读操作。
注:普通的redis集群并没有故障恢复的功能,也就是说 如果主节点宕机,也不会有新的主节点诞生