1.Redis主从
2.1.集群结构
单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。
IP | PORT | 角色 |
---|---|---|
127.0.0.1 | 6379 | master |
127.0.0.1 | 7001 | slave |
127.0.0.1 | 7002 | slave |
2.2.准备实例和配置
1)创建三个Redis文件
2)恢复原始配置
修改D:\Redis\Redis-x64-5.0.14.1/redis.windows.conf文件,将其中的持久化模式改为默认的RDB模式,AOF保持关闭状态。
# 开启RDB
# save ""
save 3600 1
save 300 100
save 60 10000
# 关闭AOF
appendonly no
2.3.启动
进入文件夹下 cmd ,执行 redis-server redis.windows.conf 命令,服务启动成功会弹出程序。
2.4.开启主从关系
现在三个实例还没有任何关系,要配置主从可以使用replicaof 或者slaveof(5.0以前)命令。
有临时和永久两种模式:
-
修改配置文件(永久生效)
- 在redis.conf中添加一行配置:
replicaof <masterip> <masterport>
- 在redis.conf中添加一行配置:
-
使用redis-cli客户端连接到redis服务,执行slaveof命令(重启后失效):
slaveof <masterip> <masterport>
-
注意:在5.0以后新增命令replicaof,与salveof效果一致。
这里使用方法一 在文件中添加一行配置:replicaof
然后连接 master节点,输入命令 info replication 查看集群状态:
然后先启动主节点,然后启动从节点,成功启动后如下图。
在主节点添加一个key-value
查看从节点数据
使用 redis-cli.exe -p 7001切换到 7001 从节点端口,在7001端口进行数据添加
显然从节点报了错,不允许向只读的从节点写入数据。
可以发现,只有在6379这个master节点上可以执行写操作,7001和7002这两个slave节点只能执行读操作。
3.搭建哨兵集群
3.1.集群结构
这里我们搭建一个三节点形成的Sentinel集群,来监管之前的Redis主从集群。
三个sentinel实例信息如下:
节点 | IP | PORT |
---|---|---|
s1 | 127.0.0.1 | 23679 |
s2 | 127.0.0.1 | 27001 |
s3 | 127.0.0.1 | 27002 |
要开启3个实例,必须准备三份不同的配置文件和目录,配置文件所在目录也就是工作目录。
然后我们在目录创建一个sentinel.conf文件,添加下面的内容
port 26379
sentinel myid 416bbb48267db04a8cbe66bb917cea81a670cb15
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 5000
dir "D:\\Redis\\Redis-x64-5.0.14.1"
解读:
port 27001
:是当前sentinel实例的端口sentinel monitor mymaster 127.0.0.1 6379 2
:指定主节点信息mymaster
:主节点名称,自定义,任意写127.0.0.1 6379
:主节点的ip和端口2
:选举master时的quorum值
使用 redis-server.exe sentinel.conf --sentinel 启动实例