安装环境
服务器一台:
- 服务器IP:172.169.3.251
- 主从端口:6379、6380、6381
- 哨兵端口,26379、26380、26381
- 安装目录:/usr/local/redis
- 配置文件目录:/usr/loca/redis/conf
redis安装
1、下载redis
wget https://download.redis.io/releases/redis-6.2.7.tar.gz
2、解压redis
tar -zxvf redis-6.2.7.tar.gz
mv redis-6.2.7 /usr/local/redis
3、编译、安装
cd /usr/local/redis
make
make install PREFIX=/usr/local/redis
配置主从、哨兵
在目录 /usr/loca/redis/conf 下创建以下文件
- redis1.conf
- redis2.conf
- redis3.conf
- sentinel1.conf
- sentinel2.conf
- sentinel3.conf
redis1.conf
bind 0.0.0.0
port 6379
daemonize yes
protected-mode no
slave-read-only no
masterauth 1234
requirepass 1234
redis2.conf
replicaof 改为 redis1的ip和端口
bind 0.0.0.0
port 6380
daemonize yes
protected-mode no
slave-read-only no
masterauth 1234
requirepass 1234
replicaof 172.169.3.251 6379
redis3.conf
replicaof 改为 redis1的ip和端口
bind 0.0.0.0
port 6381
daemonize yes
protected-mode no
slave-read-only no
masterauth 1234
requirepass 1234
replicaof 172.169.3.251 6379
sentinel1.conf
myaster 后面 ip和端口 改为redis1的ip和端口
port 26379
dir /tmp
protected-mode no
daemonize yes
sentinel monitor mymaster 172.169.3.251 6379 2
sentinel auth-pass mymaster 1234
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000
sentinel deny-scripts-reconfig yes
sentinel2.conf
myaster 后面 ip和端口 改为redis1的ip和端口
port 26380
dir /tmp
protected-mode no
daemonize yes
sentinel monitor mymaster 172.169.3.251 6379 2
sentinel auth-pass mymaster 1234
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000
sentinel deny-scripts-reconfig yes
sentinel3.conf
myaster 后面 ip和端口 改为redis1的ip和端口
port 26381
dir /tmp
protected-mode no
daemonize yes
sentinel monitor mymaster 172.169.3.251 6379 2
sentinel auth-pass mymaster 1234
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000
sentinel deny-scripts-reconfig yes
启动服务
start_all.sh
#bin/bash
REDIS_HOME=/usr/local/redis
CONFIG_HOME=/usr/loca/redis/conf
$REDIS_HOME/bin/redis-server $CONFIG_HOME/conf/redis1.conf &
sleep 1s
$REDIS_HOME/bin/redis-server $CONFIG_HOME/conf/redis2.conf &
sleep 1s
$REDIS_HOME/bin/redis-server $CONFIG_HOME/conf/redis3.conf &
sleep 1s
$REDIS_HOME/bin/redis-server $CONFIG_HOME/conf/sentinel1.conf --sentinel &
sleep 1s
$REDIS_HOME/bin/redis-server $CONFIG_HOME/conf/sentinel2.conf --sentinel &
sleep 1s
$REDIS_HOME/bin/redis-server $CONFIG_HOME/conf/sentinel3.conf --sentinel &
chmod 777 start_all.sh
./start_all.sh
查看服务
ps -ef|grep redis
查看集群状态
./redis-cli -p 6379 -a 1234
info replication
应用配置
# 哨兵的IP和端口
spring.redis.sentinel.nodes=172.169.3.186:26379,172.169.3.186:26380,172.169.3.186:26381
# sentinel monitor mymaster 172.169.3.251 6379 2 与 这里的 mymaster 一致
spring.redis.sentinel.master=mymaster
# 哨兵是否需要密码,如果未配置,则不需要
spring.redis.sentinel.password=
# redis主从的密码,配置的为1234,故需要配置
spring.redis.password=1234