单机模式
1 拉取镜像
        docker pull redis:7.2.1
2 新建redis映射配置文件夹data和conf
    $ mkdir -p /mydata/redis/data
    $ mkdir -p /mydata/redis/conf
3 切换到redis配置文件映射目录/mydata/redis/conf
    cd /mydata/redis/conf
4 编辑配置文件
   vim redis.conf
  输入一下内容:
   protected-mode no                ----关闭保护模式,可以远程访问
   appendonly yes                      -----持久化
   requirepass 123456                 -----登录密码
5 启动redis容器
   docker run --name redis-7.2.1 -p 6379:6379 -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis:7.2.1 redis-server /etc/redis/redis.conf
主从复制
1 准备2台虚拟机,ip分别是:192.168.56.102,192.168.56.103
其中102做master节点,103作为slave节点
2 102上操作如下:
          a  拉取镜像
               docker pull redis:7.2.1
           b  新建redis映射配置文件夹data和conf
               mkdir -p /mydata/redis/data
               mkdir -p /mydata/redis/conf
           c  切换到redis配置文件映射目录/mydata/redis/conf
               cd /mydata/redis/conf
           d 编辑配置文件
              vim redis.conf
                   输入一下内容:
                   protected-mode no                ----关闭保护模式,可以远程访问
                   appendonly yes                      -----持久化
                   requirepass 123456                 -----登录密码
           e 启动redis容器
                   docker run --name redis-master -p 6379:6379 -v /mydata/redis/data:/data -v                 /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis:7.2.1 redis-server                 /etc/redis/redis.conf
3 103上操作如下
        a  拉取镜像
                 docker pull redis:7.2.1
         b  新建redis映射配置文件夹data和conf
                 mkdir -p /mydata/redis/data
                 mkdir -p /mydata/redis/conf
         c  切换到redis配置文件映射目录/mydata/redis/conf
                 cd /mydata/redis/conf
         d 编辑配置文件
                 vim redis.conf
                    输入一下内容:
                     protected-mode no                ----关闭保护模式,可以远程访问
                     appendonly yes                      -----持久化
                     requirepass 123456                 -----登录密码
                     replicaof 192.168.56.102 6379   ---同步102数据
                     masterauth 123456                  ---102登录密码
                    replica-read-only yes                ---只读
         e 启动redis容器
                      docker run --name redis-slave -p 6379:6379 -v /mydata/redis/data:/data -v                 /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis:7.2.1 redis-server                 /etc/redis/redis.conf
        4  再次在102上的redis查看集群信息
            docker exec -it redis-master /bin/bash
            redis-cli 
            auth 123456
            info replication
    看到如下信息,表示主从集群已经搭建好了
哨兵模式
在以上主从复制的基础上,完成哨兵模式搭建
准备三台虚拟机
192.168.56.102,192.168.56.103,192.168.56.104,其中102做redis主备的 master 103是slave 104做sentinel
102 上的操作
同上主从模式搭建,只是在第四步配置redis配置文件时,加入以下:
masterauth 123456 ------这是因为,当master节点down之后再次重启,会从新的master节点同步数据,需要密码验证
其他不变
103 上操作:
同上主从复制
104 上操作
        a   拉取镜像
                 docker pull redis:7.2.1
        b  新建redis映射配置文件夹data和conf
                 mkdir -p /mydata/redis/conf
        c 切换到redis配置文件映射目录/mydata/redis/conf
                 cd /mydata/redis/conf
         d 编辑配置文件
                     vim redis.conf
输入一下内容:
port 26379
 # 设定密码认证
 requirepass 123456
 # 配置哨兵的监控参数
  # 格式:sentinel monitor <master-name> <ip> <redis-port> <quorum>
 # master-name是为这个被监控的master起的名字
 # ip是被监控的master的IP或主机名。因为Docker容器之间可以使用容器名访问,
 # redis-port是被监控节点所监听的端口号
 # quorom设定了当几个哨兵判定这个节点失效后,才认为这个节点真的失效了
   sentinel monitor redis_102 192.168.56.102 6379 1            
  # 连接主节点的密码
   # 格式:sentinel auth-pass <master-name> <password>
   sentinel auth-pass redis_102 123456
   # master在连续多长时间无法响应PING指令后,就会主观判定节点下线,默认是30秒
   # 格式:sentinel down-after-milliseconds <master-name> <milliseconds>
    sentinel down-after-milliseconds redis_102 30000
        e 启动sentinel实例
                 docker run -p 26379:26379 --name sentinel-1 \
                 -v /mydata/redis/sentinel.conf:/etc/redis/sentinel.conf \
                 -d redis:7.2.1 redis-sentinel /etc/redis/sentinel.conf
验证主从功能和哨兵模式
在master上设置数据,
         
在slave上可以看到对应的值
        
当停掉master节点,在sentinel上日志
            
当再次重启102节点时
        ![]()
这里在sentinel上检测到102再次上线
创作不易,如果觉得有用,点赞、收藏、关注!

![[spring] spring jpa - hibernate 名词解释配置](https://img-blog.csdnimg.cn/4abf4644d30f4d5c9b307bf549faa34c.png)

















