1、安装docker
1、安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
2、配置docker yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、安装docker
yum install -y docker-ce
4、修改docker配置文件
mkdir /etc/docker -p
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.credclouds.com",
"https://k8s.credclouds.com",
"https://quay.credclouds.com",
"https://gcr.credclouds.com",
"https://k8s-gcr.credclouds.com",
"https://ghcr.credclouds.com",
"https://do.nark.eu.org",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.1panel.live",
"https://docker.rainbond.cc"
],
"data-root": "/etc/docker"
}
EOF
5、启动docker
systemctl daemon-reload
systemctl enable docker --now
systemctl restart docker
6、安装docker-compose
#下载docker-compose文件
curl -L "https://github.com/docker/compose/releases/download/v2.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#给他一个执行权限
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#查看是否安装成功
docker-compose --version
2、拉取镜像
docker pull redis:latest
3、目录创建
mkdir /data/redis{7001,7002}/{conf,data,logs} -p
chmod -R 777 /data/redis{7001,7002}
4、redis配置文件
redis7001配置:
sudo tee /data/redis7001/conf/redis.conf <<-'EOF'
bind 0.0.0.0
protected-mode no
port 7001
tcp-backlog 511
timeout 0
tcp-keepalive 300
#daemonize yes
#pidfile /var/run/redis-7001.pid
loglevel notice
logfile "/logs/redis-7001.log"
databases 16
always-show-logo no
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir "/data"
masterauth "redis5012##00"
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
requirepass "redis5012##00"
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no
oom-score-adj no
oom-score-adj-values 0 200 800
disable-thp yes
appendonly yes
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-config-file nodes.conf
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
jemalloc-bg-thread yes
EOF
redis7002配置:
sudo tee /data/redis7002/conf/redis.conf <<-'EOF'
bind 0.0.0.0
protected-mode no
port 7002
tcp-backlog 511
timeout 0
tcp-keepalive 300
#daemonize yes
#pidfile /var/run/redis-7002.pid
loglevel notice
logfile "/logs/redis-7002.log"
databases 16
always-show-logo no
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir "/data"
masterauth "redis5012##00"
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
requirepass "redis5012##00"
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no
oom-score-adj no
oom-score-adj-values 0 200 800
disable-thp yes
appendonly yes
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-config-file nodes.conf
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
jemalloc-bg-thread yes
EOF
5、docker-compose.yml文件编写
sudo tee /data/redis7001/docker-compose.yml <<-'EOF'
version: '3.8'
services:
redis:
image: redis:latest
container_name: redis7001
command: redis-server /usr/local/etc/redis/redis.conf
#command: redis-server --requirepass redis5012##00
# sysctls:
# - net.core.somaxconn=1024
volumes:
- /data/redis7001/data:/data
- /data/redis7001/conf/redis.conf:/usr/local/etc/redis/redis.conf
- /data/redis7001/logs:/logs
- /etc/localtime:/etc/localtime
ports:
- "7001:7001"
# - "17001:16379"
restart: always
network_mode: host
# networks:
# - mynet
#networks:
# mynet:
# driver: bridge
EOF
sudo tee /data/redis7002/docker-compose.yml <<-'EOF'
version: '3.8'
services:
redis:
image: redis:latest
container_name: redis7002
command: redis-server /usr/local/etc/redis/redis.conf
#command: redis-server --requirepass redis5012##00
# sysctls:
# - net.core.somaxconn=1024
volumes:
- /data/redis7002/data:/data
- /data/redis7002/conf/redis.conf:/usr/local/etc/redis/redis.conf
- /data/redis7002/logs:/logs
- /etc/localtime:/etc/localtime
ports:
- "7002:7002"
# - "17002:16379"
restart: always
network_mode: host
# networks:
# - mynet
#networks:
# mynet:
# driver: bridge
EOF
6、启动redis服务
cd /data/redis7001
docker-compose up -d
docker-compose ps
cd /data/redis7002
docker-compose up -d
docker-compose ps
7、redis集群初始化
进入任意 Redis 容器
docker exec -it redis7001 /bin/sh
执行创建集群
redis-cli -a redis5012##00 --cluster create 192.168.52.15:7001 192.168.52.15:7002 192.168.52.16:7001 192.168.52.16:7002 192.168.52.17:7001 192.168.52.17:7002 --cluster-replicas 1
创建成功后连接任意一个redis节点
redis-cli -a redis5012##00 -c -h 192.168.52.15 -p 7001
查看集群信息
cluster info
cluster nodes
文档更新时间: 2025-07-13 07:48 作者:admin