Installation Environment
One server:
- Server IP: 172.169.3.251
- Master and slave ports: 6379, 6380, 6381
- Sentry ports, 26379, 26380, 26381
- Installation directory: /usr/local/redis
- Configuration file directory: /usr/loca/redis/conf
redis installation
1. Download redis
wget https://download.redis.io/releases/redis-6.2.7.tar.gz
2. Unzip redis
tar -zxvf redis-6.2.7.tar.gz
mv redis-6.2.7 /usr/local/redis
3. Compile and install
cd /usr/local/redis
make
make install PREFIX=/usr/local/redis
Configure master-slave and sentry
Create the following files under the directory /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
The replicaof is changed to the ip and port of redis1
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
The replicaof is changed to the ip and port of redis1
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
The ip and port behind myaster are changed to the ip and port of redis1
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
The ip and port behind myaster are changed to the ip and port of redis1
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
The ip and port behind myaster are changed to the ip and port of redis1
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 service
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
view service
ps -ef|grep redis
View cluster status
./redis-cli -p 6379 -a 1234
info replication
application configuration
# 哨兵的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