Redis Master-Slave Mode
Server IP | Role |
---|---|
192.168.10.13 | Redis Master |
192.168.10.14 | Redis Slave |
Redis Master
-
Download the redis package
- Server with Internet Access
- Server without Internet Access
wget https://pdpublic.mingdao.com/private-deployment/offline/common/redis-8.0.3-glibc2.17-amd64.tar.gz
# Download link for the redis package file, upload it to the deployment server once downloaded
https://pdpublic.mingdao.com/private-deployment/offline/common/redis-8.0.3-glibc2.17-amd64.tar.gz -
Extract to the installation directory
tar -zxvf redis-8.0.3-glibc2.17-amd64.tar.gz
mv redis-8.0.3-glibc2.17-amd64 /usr/local/redis -
Adjust kernel parameters
echo 'net.core.somaxconn = 32768' >> /etc/sysctl.conf
echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf
sysctl -p -
Create redis data directory
mkdir /data/redis
-
Modify the configuration file
cat > /usr/local/redis/redis.conf <<EOF
bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /usr/local/redis/redis.pid
loglevel notice
logfile /usr/local/redis/redis.log
databases 16
save 900 1
save 300 10
save 60 100000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data/redis
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 0 0 0
hz 10
requirepass 123456
masterauth 123456
maxmemory 16gb
maxmemory-policy allkeys-lru
maxclients 100000
rename-command KEYS ""
EOF- The password for redis authentication and master-slave authentication is
123456
. Make sure to replace it during actual deployment.
- The password for redis authentication and master-slave authentication is
-
Create a redis user authorization
useradd -U -M -s /sbin/nologin redis
chown -R redis:redis /usr/local/redis/ /data/redis -
Configure systemd management
cat > /etc/systemd/system/redis.service <<EOF
[Unit]
Description=Redis
[Service]
User=redis
Group=redis
TasksMax=infinity
LimitNOFILE=102400
LimitNPROC=infinity
LimitCORE=0
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
ExecStop=/usr/bin/kill \$MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF -
Start the redis service and enable autostart on boot
systemctl start redis
systemctl enable redis
Redis Slave
-
Download the redis package
- Server with Internet Access
- Server without Internet Access
wget https://pdpublic.mingdao.com/private-deployment/offline/common/redis-8.0.3-glibc2.17-amd64.tar.gz
# Download link for the redis package file, upload it to the deployment server once downloaded
https://pdpublic.mingdao.com/private-deployment/offline/common/redis-8.0.3-glibc2.17-amd64.tar.gz -
Extract to the installation directory
tar -zxvf redis-8.0.3-glibc2.17-amd64.tar.gz
mv redis-8.0.3-glibc2.17-amd64 /usr/local/redis -
Adjust kernel parameters
echo 'net.core.somaxconn = 32768' >> /etc/sysctl.conf
echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf
sysctl -p -
Create redis data directory
mkdir /data/redis
-
Modify the configuration file
cat > /usr/local/redis/redis.conf <<EOF
bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /usr/local/redis/redis.pid
loglevel notice
logfile /usr/local/redis/redis.log
databases 16
save 900 1
save 300 10
save 60 100000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data/redis
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 0 0 0
hz 10
requirepass 123456
masterauth 123456
maxmemory 16gb
maxmemory-policy allkeys-lru
maxclients 100000
rename-command KEYS ""
slaveof 192.168.1.13 6379
EOF- The password for redis authentication and master-slave authentication is
123456
. Make sure to replace it during actual deployment. - The redis master IP address should be replaced during actual deployment.
- The password for redis authentication and master-slave authentication is
-
Create a redis user authorization
useradd -U -M -s /sbin/nologin redis
chown -R redis:redis /usr/local/redis/ /data/redis -
Configure systemd management
cat > /etc/systemd/system/redis.service <<EOF
[Unit]
Description=Redis
[Service]
User=redis
Group=redis
TasksMax=infinity
LimitNOFILE=102400
LimitNPROC=infinity
LimitCORE=0
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
ExecStop=/usr/bin/kill \$MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF -
Start the redis service and enable autostart on boot
systemctl start redis
systemctl enable redis
Check Master-Slave Synchronization Status
/usr/local/redis/bin/redis-cli -a 123456 info replication