Redis 集群和高可用

主从模式

可以在 redis.conf 中编写下面的配置项来实现主从模式配置:

配置项 说明
replicof 主机地址
masterauth 主机密码
masteruser 主机用户名
replica-read-only 从机是否可以写数据
repl-backlog-size 数据同步缓冲区大小

在 Redis 6.0 中,将原先的slaveof 配置项修改为了 replicof

哨兵模式

哨兵模式是 Redis 官方提供的高可用解决方案。

注:哨兵模式并不负责数据相关内容仅仅负责在 Redis 中选举!

可以在 sentinel.conf 中编写下面的配置来实现哨兵模式配置:

配置项 说明
bind 监听服务地址
port 哨兵模式端口
sentinel monitor mymaster 在 quorum 台设备同时检测到服务下线时进行重新选举
sentinel down-after-milliseconds mymaster 主机最大无响应时长
sentinel parallel-syncs mymaster 设置在故障转移后可以重新配置为使用新主服务器的副本数
sentinel failover-timeout mymaster 故障转移超时配置

在配置完成后可以使用如下命令启动哨兵服务。

1
redis-server sentinel.conf --sentinel

集群模式

相较于哨兵模式,集群模式可以更好的利用系统资源缓解数据写入压力。

可以在 redis.conf 中编写下面的配置项来开启集群模式:

配置项 说明
cluster-enabled 集群模式开关
cluster-config-file 集群模式配置文件名
cluster-node-timeout 集群超时时间

在配置完成上述内容后可以正常启动服务,然后使用如下的命令来创建集群:

1
redis-cli --cluster create <ip1>:<port1> <ip2>:<port2> ... --cluster-replicas 1

注:其中 cluster-replicas 参数表示的是1个主机所对应的从机数量。

在命令运行完成后 redis 集群会进行相应初始化操作,可以使用 cli 的方式进行功能验证:

1
redis-cli -c 

注:-c 为集群模式的标识。


Redis 集群和高可用
https://wangqian0306.github.io/2020/redis-cluster/
作者
WangQian
发布于
2020年6月8日
许可协议