Redis哨兵集群原理讲解和Dockercompose安装Redis哨兵集群

2023年 9月 27日 44.4k 0

今日目标

  • 掌握Docker-compose安装Redis哨兵集群

单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离

  • 主节点: 可以对Redis实现读写操作
  • 从节点: 只可以对Redis实现读操作

但是,当master节点宕机后,我们就不能写数据到Redis,所以需要搭建一个三节点形成的Sentinel集群,来监管之前的Redis主从集群

1.Redis哨兵

Redis提供了哨兵(Sentinel)机制来实现主从集群的自动故障恢复。

哨兵的结构如图:

图片图片

共包含6个节点,一个主两个从和三个哨兵。这里我们会在同一台虚拟机中开启6个redis实例,模拟主从集群,信息如下:

IP

PORT

角色

192.168.150.102

6380

master

192.168.150.102

6381

slave

192.168.150.102

6382

slave

192.168.150.102

26379

sentinel

192.168.150.102

26380

sentinel

192.168.150.102

26381

sentinel

哨兵的作用如下:

  • 监控:Sentinel 会不断检查您的master和slave是否按预期工作
  • 自动故障恢复:如果master故障Sentinel会将一个slave提升为master。当故障实例恢复后也以新的master为主
  • 通知:Sentinel充当Redis客户端的服务发现来源,当集群发生故障转移时会将最新信息推送给Redis的客户端

2. 准备实例和配置

要在同一台虚拟机开启6个实例,必须准备6份不同的配置文件和目录,配置文件所在目录也就是工作目录。 确保下面的配置已经更改(位置也别错)

# master
mkdir -p /redis-master-slave-sentinel/redis/master/config /redis-master-slave-sentinel/redis/master/data
cd /redis-master-slave-sentinel/redis/master/config
curl -O -L http://download.redis.io/releases/redis-6.0.20.tar.gz
tar -zxvf redis-6.0.20.tar.gz
cp /redis-master-slave-sentinel/redis/master/config/redis-6.0.20/redis.conf /redis-master-slave-sentinel/redis/master/config/redis.conf
sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' /redis-master-slave-sentinel/redis/master/config/redis.conf

# slave-1
mkdir -p /redis-master-slave-sentinel/redis/slave-1/config /redis-master-slave-sentinel/redis/slave-1/data
cd /redis-master-slave-sentinel/redis/slave-1/config/
cp /redis-master-slave-sentinel/redis/master/config/redis-6.0.20/redis.conf /redis-master-slave-sentinel/redis/slave-1/config/redis.conf
sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' /redis-master-slave-sentinel/redis/slave-1/config/redis.conf

# slave-2
mkdir -p /redis-master-slave-sentinel/redis/slave-2/config /redis-master-slave-sentinel/redis/slave-2/data
cd /redis-master-slave-sentinel/redis/slave-2/config/
cp /redis-master-slave-sentinel/redis/master/config/redis-6.0.20/redis.conf /redis-master-slave-sentinel/redis/slave-2/config/redis.conf
sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' /redis-master-slave-sentinel/redis/slave-2/config/redis.conf

#redis-sentinel-1
mkdir -p /redis-master-slave-sentinel/sentinel/redis-sentinel-1 /redis-master-slave-sentinel/sentinel/redis-sentinel-1/s1
cd /redis-master-slave-sentinel/sentinel/redis-sentinel-1

cat >> /redis-master-slave-sentinel/sentinel/redis-sentinel-1/sentinel.conf /redis-master-slave-sentinel/sentinel/redis-sentinel-2/sentinel.conf /redis-master-slave-sentinel/sentinel/redis-sentinel-3/sentinel.conf

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论