java

阿里云服务器搭建Redis启用主从和哨兵模式

rzk · 5月27日 · 2021年本文共3665个字 · 预计阅读13分钟96次已读

下载redis 6 解压

redis官方下载地址

[root@rzk opt]# tar zxvf redis-6.2.3.tar.gz 

解压后进入redis目录里面的src

阿里云服务器搭建Redis启用主从和哨兵模式

阿里云服务器搭建Redis启用主从和哨兵模式

修改redis6.conf文件

[root@rzk opt]# mkdir -p redis6
[root@rzk opt]# cd redis6/
[root@rzk redis6]# ls
[root@rzk redis6]# mkdir -p conf
[root@rzk redis6]# mkdir -p log
[root@rzk redis6]# mkdir -p data
[root@rzk redis6]# ls
conf  data  log

进入解压的redis文件,复制一份redis.conf 到刚刚新建文件夹的conf里面

阿里云服务器搭建Redis启用主从和哨兵模式

修改redis6.conf

注释掉bind

阿里云服务器搭建Redis启用主从和哨兵模式

关闭保护模式

阿里云服务器搭建Redis启用主从和哨兵模式

注释端口号

阿里云服务器搭建Redis启用主从和哨兵模式

开启后台启动

阿里云服务器搭建Redis启用主从和哨兵模式

pid文件

阿里云服务器搭建Redis启用主从和哨兵模式

日志文件

阿里云服务器搭建Redis启用主从和哨兵模式

开启默认的rdb文件

阿里云服务器搭建Redis启用主从和哨兵模式

每一个端口都会有对应的rdb文件,这个需要注释

阿里云服务器搭建Redis启用主从和哨兵模式

存放在新建的data文件目录下

阿里云服务器搭建Redis启用主从和哨兵模式

从节点密码

阿里云服务器搭建Redis启用主从和哨兵模式

从服务器默认只读

阿里云服务器搭建Redis启用主从和哨兵模式

设置主服务密码

阿里云服务器搭建Redis启用主从和哨兵模式

编辑好久保存

复制三份 分别是不同端口号

6391,6392,6393

复制三份
6391

# 引用公共配置
include /opt/redis6/conf/redis6.conf
# 进程编号记录文件
pidfile /var/run/redis-6391.pid
# 进程端口号
port 6391
# 日志记录文件
logfile "/opt/redis/log/redis-6391.log"
# 数据记录文件
dbfilename dump-6391.rdb
# 追加文件名称
appendfilename "appendonly-6391.aof"
# 下面的配置无需在6391里配置
# 备份服务器从属于6391推荐配置局域网ip
#slaveof **内网ip** 6391  **主节点不用配置**

6392

# 引用公共配置
include /opt/redis6/conf/redis6.conf
# 进程编号记录文件
pidfile /var/run/redis-6392.pid
# 进程端口号
port 6392
# 日志记录文件
logfile "/opt/redis/log/redis-6392.log"
# 数据记录文件
dbfilename dump-6392.rdb
#睿共享 追加文件名称
appendfilename "appendonly-6392.aof"
# 下面的配置无需在6391里配置
# 备份服务器从属于6391推荐配置局域网ip
slaveof **内网ip** 6391 

6393

# 引用公共配置
include /opt/redis6/conf/redis6.conf
# 进程编号记录文件
pidfile /var/run/redis-6392.pid
# 进程端口号
port 6392
# 日志记录文件
logfile "/opt/redis/log/redis-6392.log"
# 数据记录文件
dbfilename dump-6392.rdb
# 追加文件名称
appendfilename "appendonly-6392.aof"
# 下面的配置无需在6391里配置
# 备份服务器从属于6391推荐配置局域网ip
slaveof **内网ip** 6391  

阿里云服务器搭建Redis启用主从和哨兵模式

启动服务

[root@rzk bin]# ./redis-server /opt/redis6/conf/redis-6391.conf 
[root@rzk bin]# ./redis-server /opt/redis6/conf/redis-6392.conf 
[root@rzk bin]# ./redis-server /opt/redis6/conf/redis-6393.conf

登录redis 端口

[root@rzk bin]# ./redis-cli -p 6391 -a 密码
[root@rzk bin]# ./redis-cli -p 6392 -a 密码
[root@rzk bin]# ./redis-cli -p 6393 -a 密码

查看主信息

127.0.0.1:6391> info replication
# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:57ca5a7eb086395207990befcc34875053b92334
master_replid2:000000000000000000000000000000000睿共享0000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

阿里云服务器搭建Redis启用主从和哨兵模式

查看从信息

阿里云服务器搭建Redis启用主从和哨兵模式
阿里云服务器搭建Redis启用主从和哨兵模式

主节点设置值,从节点可以读到

然后从服务器不能写只能读

阿里云服务器搭建Redis启用主从和哨兵模式

哨兵模式

在redis文件中 把sentinel.conf拷贝到opt/redis/conf中

sentinel.conf文件内容如下

# 哨兵sentinel实例运行的端口 默认26379 port 26379

daemonize 睿共享yes

# pidfile /var/run/redis-sentinel.pid

# logfile ""

# 哨兵sentinel的工作目录 dir /tmp

sentinel monitor mymaster **内网id** 6381 2
#哨兵监控主从  这个2 是这边开启三台服务器 如果要选举服务器就需要大于百分之50才能选举成功  3台服务器如果要选一台就需要大于2台

 sentinel auth-pass mymaster 密码

拷贝三个配置文件

内容如下

#引用公共配置
include /opt/redis/conf/sentinel.conf
#进程端口号
port 26381
#进程编号记录文件
pidfile /var/run/sentinel-26381.pid
#日志记录文件(为了方便查看日志,先注释掉,搭建好环境后再打开
logfile "/opt/redis/log/sentinel-26381.log"
[root@rzk conf]# touch sentinel-26381.conf
[root@rzk conf]# touch sentinel-26382.c睿共享onf
[root@rzk conf]# touch sentinel-26383.conf

启动哨兵模式

./redis-sentinel /opt/redis/conf/sentinel-26381.conf
./redis-sentinel /opt/redis/conf/sentinel-26382.conf
./redis-sentinel /opt/redis/conf/sentinel-26383.conf

先开启三个窗口查看日志

tail -f /opt/redis/log/sentinel-26381.log 
tail -f /opt/redis/log/sentinel-26382.log 
tail -f /opt/redis/log/sentinel-26383.log 

现在把6381杀死等待30秒

 kill -9 端口号
 查看端口号的命令是: ps -ef | grep reids

阿里云服务器搭建Redis启用主从和哨兵模式

81端口变成从服务器,83端口被选举成功成主服务器

阿里云服务器搭建Redis启用主从和哨兵模式

springboot使用redis哨兵

使用配置文件配置哨兵

spring:
    redis:
        # Redis服务器地址
        host: 
        # Redis服务器端口
        port: 6383
        # Redis服务器密码
        password: 
        # 选择哪个库  默认0库
        database: 0
        # 连接超过时间
        timeout: 10000ms
        lettuce:
            pool:
                # 最大连接数 默认8
                max-active: 1024
                # 最大连接阻塞等待时间,单位毫秒,默认 -1ms
                max-wait: 10000ms
                # 最大空闲连接,默认8
                max-idle: 200
                # 最小空闲连接,默认0
睿共享                min-idle: 5
        #哨兵模式
        sentinel:
            #主节点名称
            master: mymaster
            #节点  这里需要开启 2681,82,83端口
            nodes: 服务器ip:26381,服务器ip:26382,服务器ip:26383

使用redisConfig文件

    @Bean
    public RedisSentinelConfiguration redisSentinelConfiguration(){
        RedisSentinelConfiguration redisSentinelConfiguration = new RedisSentinelConfiguration()
                //主节点名称
                .master("mymaster")
                //哨兵
                .sentinel("服务器ip",26381)
                .sentinel("服务器ip",26382)
                .sentinel("服务器ip",26383);
        //密码
        redisSentinelConfiguration.setPassword("配置的哨兵密码");
        return redisSentinelConfiguration;
    }
0 条回应