update
This commit is contained in:
parent
3b24031a1f
commit
dc3d152756
@ -1,146 +1,144 @@
|
|||||||
---
|
---
|
||||||
title: "CentOS7 安装 Redis 集群"
|
title: "CentOS7 安装 Redis 集群"
|
||||||
date: 2019-11-29T15:14:29+08:00
|
date: 2019-11-29T15:14:29+08:00
|
||||||
lastmod: 2019-11-29T15:14:29+08:00
|
lastmod: 2023-03-01T20:03:00+08:00
|
||||||
tags: ["redis"]
|
tags: ["redis"]
|
||||||
categories: ["database"]
|
categories: ["database"]
|
||||||
---
|
---
|
||||||
|
|
||||||
## 环境
|
## 环境
|
||||||
- 操作系统: CentOS7.7,关闭 firewalld 和 selinux
|
- 操作系统: CentOS7.9,关闭 firewalld 和 selinux
|
||||||
- Redis: 5.0.6
|
- Redis: 5.0.14
|
||||||
- master 实例
|
- master 实例
|
||||||
- 10.0.4.110:6371
|
- 10.0.4.110:6371
|
||||||
- 10.0.4.110:6372
|
- 10.0.4.110:6372
|
||||||
- 10.0.4.110:6373
|
- 10.0.4.110:6373
|
||||||
|
|
||||||
- slave 实例
|
- slave 实例
|
||||||
- 10.0.4.111:6371
|
- 10.0.4.111:6371
|
||||||
- 10.0.4.111:6372
|
- 10.0.4.111:6372
|
||||||
- 10.0.4.111:6373
|
- 10.0.4.111:6373
|
||||||
|
|
||||||
## 编译 redis server
|
## 编译 redis server
|
||||||
- 在 CentOS7.7 测试服务器上下载、编译
|
- 在 CentOS7.9 测试服务器上下载、编译
|
||||||
```bash
|
```bash
|
||||||
wget http://download.redis.io/releases/redis-5.0.6.tar.gz
|
curl -LO http://download.redis.io/releases/redis-5.0.14.tar.gz
|
||||||
tar xzf redis-5.0.6.tar.gz
|
tar zxf redis-5.0.14.tar.gz
|
||||||
cd redis-5.0.6
|
cd redis-5.0.14
|
||||||
make
|
make
|
||||||
```
|
```
|
||||||
|
|
||||||
- 抽取安装文件
|
- 抽取安装文件
|
||||||
```bash
|
```bash
|
||||||
mkdir -p /opt/redis_cluster/{bin,conf}
|
mkdir -p /opt/redis/{bin,conf}
|
||||||
cp src/{redis-server,redis-cli,redis-benchmark} /opt/redis_cluster/bin/
|
cp src/{redis-server,redis-cli,redis-benchmark} /opt/redis/bin/
|
||||||
# redis-check-rdb 和 redis-check-aof 与 redis-server 校验值一致,无需复制
|
cd /opt/redis/bin
|
||||||
|
ln -s redis-server redis-check-aof
|
||||||
|
ln -s redis-server redis-check-rdb
|
||||||
|
ln -s redis-server redis-sentinel
|
||||||
|
```
|
||||||
|
|
||||||
|
- 创建 /opt/redis/conf/redis-6379.conf,常用配置如下
|
||||||
```
|
```
|
||||||
- 创建 /opt/redis_cluster/conf/redis.conf,常用配置如下
|
|
||||||
```bash
|
|
||||||
bind 0.0.0.0
|
bind 0.0.0.0
|
||||||
protected-mode yes
|
protected-mode no
|
||||||
tcp-backlog 511
|
port 6379
|
||||||
timeout 3600
|
daemonize yes
|
||||||
tcp-keepalive 300
|
|
||||||
daemonize no
|
|
||||||
supervised no
|
supervised no
|
||||||
|
pidfile log/redis-6379.pid
|
||||||
loglevel notice
|
loglevel notice
|
||||||
|
logfile log/redis-6379.log
|
||||||
always-show-logo no
|
always-show-logo no
|
||||||
|
#save ""
|
||||||
save 900 1
|
save 900 1
|
||||||
save 300 10
|
save 300 10
|
||||||
save 60 10000
|
save 60 10000
|
||||||
stop-writes-on-bgsave-error yes
|
|
||||||
rdbcompression yes
|
|
||||||
rdbchecksum yes
|
|
||||||
dbfilename dump.rdb
|
dbfilename dump.rdb
|
||||||
#masterauth "123456"
|
dir db-6379
|
||||||
replica-serve-stale-data yes
|
maxclients 8192
|
||||||
replica-read-only yes
|
maxmemory 6442450944
|
||||||
repl-diskless-sync no
|
#requirepass xxxx
|
||||||
repl-diskless-sync-delay 5
|
#masterauth xxxx
|
||||||
repl-disable-tcp-nodelay no
|
#cluster-enabled yes
|
||||||
replica-priority 100
|
#cluster-config-file nodes-6379.conf
|
||||||
#requirepass "123456"
|
maxmemory-policy volatile-random
|
||||||
maxclients 10000
|
|
||||||
maxmemory 4294967296
|
|
||||||
maxmemory-policy volatile-lru
|
|
||||||
lazyfree-lazy-eviction no
|
|
||||||
lazyfree-lazy-expire no
|
|
||||||
lazyfree-lazy-server-del no
|
|
||||||
replica-lazy-flush no
|
|
||||||
appendonly no
|
appendonly no
|
||||||
appendfilename "appendonly.aof"
|
|
||||||
appendfsync everysec
|
|
||||||
no-appendfsync-on-rewrite no
|
|
||||||
auto-aof-rewrite-percentage 100
|
|
||||||
auto-aof-rewrite-min-size 64mb
|
|
||||||
aof-load-truncated yes
|
|
||||||
aof-use-rdb-preamble yes
|
|
||||||
lua-time-limit 5000
|
|
||||||
cluster-enabled yes
|
|
||||||
cluster-node-timeout 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
|
|
||||||
stream-node-max-bytes 4096
|
|
||||||
stream-node-max-entries 100
|
|
||||||
activerehashing yes
|
|
||||||
client-output-buffer-limit normal 0 0 0
|
|
||||||
client-output-buffer-limit replica 256mb 64mb 60
|
|
||||||
client-output-buffer-limit pubsub 32mb 8mb 60
|
|
||||||
hz 10
|
|
||||||
dynamic-hz yes
|
|
||||||
aof-rewrite-incremental-fsync yes
|
|
||||||
rdb-save-incremental-fsync yes
|
|
||||||
```
|
```
|
||||||
- 创建 /opt/redis_cluster/redis@.service,配置如下
|
|
||||||
|
- 创建 /opt/redis/conf/redis-637{1..3}.conf
|
||||||
|
```bash
|
||||||
|
cd /opt/redis/conf
|
||||||
|
cp redis-6379.conf redis-6371.conf
|
||||||
|
cp redis-6379.conf redis-6372.conf
|
||||||
|
cp redis-6379.conf redis-6373.conf
|
||||||
|
sed -i \
|
||||||
|
-e 's/6379/6371/g' \
|
||||||
|
-e '/daemonize/cdaemonize no' \
|
||||||
|
-e '/supervised/csupervised systemd' \
|
||||||
|
-e '/requirepass/crequirepass 123456' \
|
||||||
|
-e '/masterauth/cmasterauth 123456' \
|
||||||
|
-e '/cluster/^#//' \
|
||||||
|
redis-6371.conf
|
||||||
|
sed -i \
|
||||||
|
-e 's/6379/6372/g' \
|
||||||
|
-e '/daemonize/cdaemonize no' \
|
||||||
|
-e '/supervised/csupervised systemd' \
|
||||||
|
-e '/requirepass/crequirepass 123456' \
|
||||||
|
-e '/masterauth/cmasterauth 123456' \
|
||||||
|
-e '/cluster/^#//' \
|
||||||
|
redis-6372.conf
|
||||||
|
sed -i \
|
||||||
|
-e 's/6379/6373/g' \
|
||||||
|
-e '/daemonize/cdaemonize no' \
|
||||||
|
-e '/supervised/csupervised systemd' \
|
||||||
|
-e '/requirepass/crequirepass 123456' \
|
||||||
|
-e '/masterauth/cmasterauth 123456' \
|
||||||
|
-e '/cluster/^#//' \
|
||||||
|
redis-6373.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
- 创建日志目录和数据目录
|
||||||
|
```bash
|
||||||
|
cd /opt/redis
|
||||||
|
mkdir -p db-{6371..6373} log
|
||||||
|
```
|
||||||
|
|
||||||
|
- 创建 /opt/redis/redis@.service,内容如下
|
||||||
```ini
|
```ini
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Redis cluster -- node %i
|
Description=Redis cluster -- node %i
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStartPre=/usr/bin/ls -d /var/lib/redis_cluster/%i
|
WorkingDirectory=/opt/redis
|
||||||
ExecStart=/opt/redis_cluster/bin/redis-server /opt/redis_cluster/conf/redis.conf \
|
ExecStart=/opt/redis/bin/redis-server conf/redis-%i.conf
|
||||||
--daemonize no \
|
|
||||||
--port %i \
|
|
||||||
--pidfile /var/run/redis_%i.pid \
|
|
||||||
--logfile /var/log/redis_cluster/%i.log \
|
|
||||||
--dir /var/lib/redis_cluster/%i \
|
|
||||||
--cluster-config-file /var/lib/redis_cluster/%i/nodes.conf
|
|
||||||
ExecStop=/opt/redis_cluster/bin/redis-cli -h 127.0.0.1 -p %i shutdown
|
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=1
|
RestartSec=2
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
```
|
```
|
||||||
|
|
||||||
## 部署
|
## 部署
|
||||||
- 把测试机的 /opt/redis_cluster 目录复制到 10.0.4.110 和 10.0.4.111 上
|
- 把 /opt/redis 目录复制到 10.0.4.110 和 10.0.4.111 上
|
||||||
```bash
|
```bash
|
||||||
scp -r /opt/redis_cluster 10.0.4.110:/opt/
|
scp -r /opt/redis 10.0.4.110:/opt/
|
||||||
scp -r /opt/redis_cluster 10.0.4.111:/opt/
|
scp -r /opt/redis 10.0.4.111:/opt/
|
||||||
```
|
```
|
||||||
|
|
||||||
- 在 10.0.4.110 和 10.0.4.111 上都执行以下操作
|
- 在 10.0.4.110 和 10.0.4.111 上都执行以下操作
|
||||||
```bash
|
```bash
|
||||||
mv /opt/redis_cluster/redis@.service /usr/lib/systemd/system/
|
cp /opt/redis/redis@.service /usr/lib/systemd/system/
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
mkdir -p /var/lib/redis_cluster/{6371..6373}
|
|
||||||
mkdir -p /var/log/redis_cluster
|
|
||||||
```
|
```
|
||||||
|
|
||||||
- 在 10.0.4.110 和 10.0.4.111 上配置实例开机启动
|
- 在 10.0.4.110 和 10.0.4.111 上配置实例开机启动
|
||||||
```bash
|
```bash
|
||||||
systemctl enable redis@6371
|
systemctl enable redis@6371
|
||||||
systemctl enable redis@6372
|
systemctl enable redis@6372
|
||||||
systemctl enable redis@6373
|
systemctl enable redis@6373
|
||||||
```
|
```
|
||||||
|
|
||||||
- 在 10.0.4.110 和 10.0.4.111 上启动全部实例
|
- 在 10.0.4.110 和 10.0.4.111 上启动全部实例
|
||||||
```bash
|
```bash
|
||||||
systemctl start redis@6371
|
systemctl start redis@6371
|
||||||
@ -149,24 +147,31 @@ categories: ["database"]
|
|||||||
```
|
```
|
||||||
|
|
||||||
## 配置集群
|
## 配置集群
|
||||||
- 在 10.0.4.110 或 10.0.4.111 上创建集群,指定三个 master 实例
|
- 在 10.0.4.110 上创建集群,指定三个 master 实例
|
||||||
```bash
|
```bash
|
||||||
/opt/redis_cluster/bin/redis-cli \
|
/opt/redis/bin/redis-cli \
|
||||||
|
-a 123456 \
|
||||||
--cluster create 10.0.4.110:6371 10.0.4.110:6372 10.0.4.110:6373
|
--cluster create 10.0.4.110:6371 10.0.4.110:6372 10.0.4.110:6373
|
||||||
```
|
```
|
||||||
|
|
||||||
- 输出如下图
|
- 输出如下图
|
||||||

|

|
||||||
|
|
||||||
- 同意配置,输入 "yes",回车后输出如下图
|
- 同意配置,输入 "yes",回车后输出如下图
|
||||||

|

|
||||||
|
|
||||||
- 查看集群当前实例
|
- 查看集群当前实例
|
||||||
```bash
|
```bash
|
||||||
/opt/redis_cluster/bin/redis-cli -p 6371 cluster nodes
|
/opt/redis/bin/redis-cli -p 6371 cluster nodes
|
||||||
```
|
```
|
||||||
|
|
||||||
- 输出如下图
|
- 输出如下图
|
||||||

|

|
||||||
|
|
||||||
- 添加 slave 实例 10.0.4.111:6371,同步 master 10.0.4.110:6371
|
- 添加 slave 实例 10.0.4.111:6371,同步 master 10.0.4.110:6371
|
||||||
```bash
|
```bash
|
||||||
/opt/redis_cluster/bin/redis-cli \
|
/opt/redis/bin/redis-cli \
|
||||||
|
-a 123456 \
|
||||||
--cluster add-node 10.0.4.111:6371 10.0.4.110:6371 \
|
--cluster add-node 10.0.4.111:6371 10.0.4.110:6371 \
|
||||||
--cluster-slave \
|
--cluster-slave \
|
||||||
--cluster-master-id 5be0edaf74d1eec50bbe675f9698397023a943b7
|
--cluster-master-id 5be0edaf74d1eec50bbe675f9698397023a943b7
|
||||||
@ -174,32 +179,39 @@ categories: ["database"]
|
|||||||
# --cluster-slave 指定添加 slave 实例
|
# --cluster-slave 指定添加 slave 实例
|
||||||
# --cluster-master-id 指定 10.0.4.110:6371 的 id,即本次添加实例的 master
|
# --cluster-master-id 指定 10.0.4.110:6371 的 id,即本次添加实例的 master
|
||||||
```
|
```
|
||||||
|
|
||||||
- 输出如下图
|
- 输出如下图
|
||||||

|

|
||||||
|
|
||||||
- 添加 slave 实例 10.0.4.111:6372,同步 master 10.0.4.110:6372
|
- 添加 slave 实例 10.0.4.111:6372,同步 master 10.0.4.110:6372
|
||||||
```bash
|
```bash
|
||||||
/opt/redis_cluster/bin/redis-cli \
|
/opt/redis/bin/redis-cli \
|
||||||
--cluster add-node 10.0.4.111:6372 10.0.4.110:6371 \
|
--cluster add-node 10.0.4.111:6372 10.0.4.110:6371 \
|
||||||
--cluster-slave \
|
--cluster-slave \
|
||||||
--cluster-master-id 96f2225fdd054d8a16b31726fd1eb0b66c612646
|
--cluster-master-id 96f2225fdd054d8a16b31726fd1eb0b66c612646
|
||||||
```
|
```
|
||||||
|
|
||||||
- 输出如下图
|
- 输出如下图
|
||||||

|

|
||||||
|
|
||||||
- 添加 slave 实例 10.0.4.111:6373,同步 master 10.0.4.110:6373
|
- 添加 slave 实例 10.0.4.111:6373,同步 master 10.0.4.110:6373
|
||||||
```bash
|
```bash
|
||||||
/opt/redis_cluster/bin/redis-cli \
|
/opt/redis/bin/redis-cli \
|
||||||
--cluster add-node 10.0.4.111:6373 10.0.4.110:6371 \
|
--cluster add-node 10.0.4.111:6373 10.0.4.110:6371 \
|
||||||
--cluster-slave \
|
--cluster-slave \
|
||||||
--cluster-master-id cd60c238e66c8b4a31355bee4610444a47acef86
|
--cluster-master-id cd60c238e66c8b4a31355bee4610444a47acef86
|
||||||
```
|
```
|
||||||
|
|
||||||
- 输出如下图
|
- 输出如下图
|
||||||

|

|
||||||
|
|
||||||
- 查看集群当前实例
|
- 查看集群当前实例
|
||||||
```bash
|
```bash
|
||||||
/opt/redis_cluster/bin/redis-cli -p 6371 cluster nodes
|
/opt/redis/bin/redis-cli -p 6371 cluster nodes
|
||||||
```
|
```
|
||||||
|
|
||||||
- 输出如下图
|
- 输出如下图
|
||||||

|

|
||||||
|
|
||||||
## Docker 部署
|
## Docker 部署
|
||||||
- 安装 docker-ce,参考[这里](https://www.colben.cn/post/docker/#%E5%AE%89%E8%A3%85)
|
- 安装 docker-ce,参考[这里](https://www.colben.cn/post/docker/#%E5%AE%89%E8%A3%85)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user