Redis-Docker 安装(集群)

12/28/2023 LinuxDockerRedis

摘要

Docker CE Version:20.10.10
Centos Version:CentOS Linux release 7.9.2009 (Core)

# 一:安装Redis

具体可查看 安装Redis

# 二:挂载

新建文件夹与配置文件。

新建 dataconf 两个文件夹,位置随意。

for port in $(seq 6383 6388);
do 
mkdir -p /root/docker/redis3/node-${port}/{data,conf}
touch /root/docker/redis3/node-${port}/conf/redis.conf
cat  << EOF > /root/docker/redis3/node-${port}/conf/redis.conf
port ${port}
bind 0.0.0.0
requirepass qazwsx123edc
protected-mode no
appendonly yes
cluster-enabled yes 
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.214.131
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
EOF
done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  • appendonly:是否开启 AOF 持久化模式,默认 no;
  • cluster-enabled:是否开启集群模式,默认 no;
  • cluster-config-file:集群节点信息文件;
  • cluster-node-timeout:集群节点连接超时时间;
  • cluster-announce-ip:集群节点 IP;
  • cluster-announce-port:集群节点映射端口;
  • cluster-announce-bus-port:集群节点总线端口。

通过 tree 命令查看目录结构:(如果没有该命令先安装 yum install -y tree

新建文件夹与配置文件

每个 Redis Cluster 节点都需要打开两个 TCP 连接,用于服务客户端的普通 Redis TCP 端口,例如 6379,加上数据端口上 10000 得到的端口,如 16379。详情可查看 redis 官网 (opens new window)

第二个高端口用于集群总线,即使用二进制协议的节点到节点通信通道。节点使用集群总线进行故障检测、配置更新、故障转移授权等。客户端永远不要尝试与集群总线端口通信,而应始终与普通 Redis 命令端口通信,但确保在防火墙中打开这两个端口,否则 Redis 集群节点将无法通信。

命令端囗和集群总线端口偏移量是固定的,始终为 10000。

# 三:启动

# 3.1 创建并启动

for port in $(seq 6383 6388); \
do \
    docker run --name redis-${port} \
    -p ${port}:${port} -p 1${port}:1${port} \
    -v /root/docker/redis3/node-${port}/data:/data \
    -v /root/docker/redis3/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
    --sysctl net.core.somaxconn=1024 \
    -d redis redis-server /etc/redis/redis.conf
done
1
2
3
4
5
6
7
8
9

释义如下:

  • –name:给容器起一个名
  • -p:端口映射 宿主机:容器
  • -v:挂载自定义配置 自定义配置:容器内部配置
  • -d:后台运行
  • redis-server /etc/redis/redis.conf:让 redis 按照此 redis.conf 的配置启动
  • --sysctl:设置系统参数,通过这些参数来调整系统性能

启动

# 3.2 验证

通过 docker ps 查看启动状态是否成功

验证

# 四:容器终端

  1. 执行 docker exec -it redis-6383 /bin/bash 命令,进入终端。

  2. 创建集群

redis-cli -a qazwsx123edc --cluster create 192.168.214.131:6383 192.168.214.131:6384 192.168.214.131:6385 192.168.214.131:6386 192.168.214.131:6387 192.168.214.131:6388 --cluster-replicas 1
1

终端

  1. 查看节点相关信息
> redis-cli -c -a qazwsx123edc -p 6383
> cluster info
> cluster nodes
1
2
3

终端

主节点 myself 则是目前所在节点

# 五:附录

批量停止容器

 for port in $(seq 6383 6388); 
 do 
 docker stop redis-${port}
 done
1
2
3
4

批量删除容器

 for port in $(seq 6383 6388); 
 do 
 docker rm redis-${port}
 done
1
2
3
4

# 六:常见问题

具体可查看 常见问题

# 七:参考文献

最后更新: 12/27/2023, 11:28:51 PM