下面是主从redis服务
6379 | 主 |
6380 | 从1 |
6381 | 从2 |
下面是多个哨兵
26379 | 哨兵1 |
26380 | 哨兵2 |
26381 | 哨兵3 |
- windows下redis压缩包(本文使用的是5.0.13)
Redis(点我跳转页面下载) - 解压(不知道命令的可以百度)
tar -zxvf redis-5.0.13.tar.gz - 安装或升级gcc
1)linux会自带gcc编译器,但听说redis4.0以上需要升级gcc
2)查看gcc版本命令:gcc -v
图中我的已经是高版本的
3)升级gcc版本命令yum -y install centos-release-scl && yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils && scl enable devtoolset-9 bash
- 安装只后跳转到redis解压目录,会发现很多文件,首先我来配置主从(1主2从)
-
(配置主)找到redis.conf,修改以下几点,有些可能是redis已经设置好的,最好是检查一下
0)port 6379(设置端口)
1)注释掉# bind 127.0.0.1(作用是为了让外面能访问到)
2)daemonize yes(将daemonize 设置成yes)
3)requirepass 123456(设置密码)
4)masterauth 123456(设置主redis密码,因为他自己可能会挂掉,当他再复活的时候,master已不是他了)
5)replica-read-only no(把从redis只读状态关掉) -
(配置从1)找到刚修改的redis.conf,把他复制两份,文件名分别叫redis-6380.conf,redis-6381(为了看起来舒服,把原来的redis.conf文件,名字改成redis-6379.conf)
0)port 6380(设置端口)
1)注释掉# bind 127.0.0.1(作用是为了让外面能访问到)
2)daemonize yes(将daemonize 设置成yes)
3)requirepass 123456(设置密码)
4)masterauth 123456(设置主redis密码,因为他自己可能会挂掉,当他再复活的时候,master已不是他了)
5)replica-read-only no(把从redis只读状态关掉)
6)slaveof 192.168.98.123 6379(设置主从同步,非常重要) -
(配置从2)
0)port 6381(设置端口)
1)注释掉# bind 127.0.0.1(作用是为了让外面能访问到)
2)daemonize yes(将daemonize 设置成yes)
3)requirepass 123456(设置密码)
4)masterauth 123456(设置主redis密码,因为他自己可能会挂掉,当他再复活的时候,master已不是他了)
5)replica-read-only no(把从redis只读状态关掉)
6)slaveof 192.168.98.123 6379(设置主从同步,非常重要)
-
-
然后我们来配置哨兵(多个哨兵改一下端口就行了)
1.(配置哨兵1)找到sentinel.conf修改以下几点,有些可能是redis已经设置好的,最好是检查一下
0)port 26379(设置哨兵端口)
1)daemonize yes(将daemonize 设置成yes)
2)dir "/usr/local/redis/redis-5.0.13"
3)logfile "26379.log"(这两步是设置日志输出的)
4)sentinel monitor mymaster 192.168.98.123 6379 1
5)sentinel auth-pass mymaster People2000(这个必须在上一条的下面,不然项目使用的时候会报错)
6)sentinel down-after-milliseconds mymaster 5000(多久时间检查一次redis生命状态)
------------------------------------------------
2.(配置哨兵2,哨兵3)找到刚修改的sentinel.conf,把他复制两份,文件名分别叫sentinel-26380.conf,sentinel-26381(为了看起来舒服,把原来的sentinel.conf文件,名字改成sentinel-26379.conf)
0)port 26380/26381(设置哨兵端口,改成相应的端口就行)
1)daemonize yes(将daemonize 设置成yes)
2)dir "/usr/local/redis/redis-5.0.13"
3)logfile "26380/81.log"(这两步是设置日志输出的,改成相应的日志文件,为了区分日志输出)
4)sentinel monitor mymaster 192.168.98.123 6379 1
5)sentinel auth-pass mymaster People2000(这个必须在上一条的下面,不然项目使用的时候会报错)
6)sentinel down-after-milliseconds mymaster 5000(多久时间检查一次redis生命状态)
-
接下来直接启动redis服务(现在是在redis安装目录的位置)
1)启动主:redis-server redis-6379.conf
2)启动从1:redis-server redis-6380.conf
3)启动从2:redis-server redis-6381.conf
查看主从关系
连接redis命令:redis-cli -p 6379
进去之后会要你输密码:auth 你自己设置的密码(注意“auth”与密码之间有个空格)
再输入:info replication
如图可见,6379下面有两个从,分别是6380,6381 -
然后来启动哨兵(现在是在redis安装目录的位置)
1)启动哨兵1:redis-sentinel sentinel-26379.conf &
2)启动哨兵2:redis-sentinel sentinel-26380.conf &
3)启动哨兵3:redis-sentinel sentinel-26381.conf &
注意:加(&)这个符号后台运行
springboot配置redis哨兵:
spring:
redis:
# host: 192.168.98.123
# port: 6379
password: 123465# 密码(默认为空)
timeout: 6000ms # 连接超时时长(毫秒)
lettuce:
pool:
max-active: 1000 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle: 10 # 连接池中的最大空闲连接
min-idle: 5 # 连接池中的最小空闲连接
sentinel:
master: mymaster
nodes: 192.168.98.123:26379,192.168.98.123:26380,192.168.98.123:26381 #配置多个哨兵
其他跟单个redis一样,因为他有自动配置功能
当主挂了之后,一个从就会变成主,原来的主复活之后,就变成从了