怎样设网站,商城网站合作协议,网站登录流程,江苏省内网站建设Docker部署Redis集群 1. 安装 Docker 和 Docker Compose安装 Docker#xff1a;安装 Docker Compose#xff1a; 2. 配置 Redis 容器和网络3. 启动 Redis 容器4. 设置 Redis 集群4.1 集群创建异常处理 5. 验证和测试总结 如果 CentOS 服务器上还没有安装 Docker 和 Docker Co… Docker部署Redis集群 1. 安装 Docker 和 Docker Compose安装 Docker安装 Docker Compose 2. 配置 Redis 容器和网络3. 启动 Redis 容器4. 设置 Redis 集群4.1 集群创建异常处理 5. 验证和测试总结 如果 CentOS 服务器上还没有安装 Docker 和 Docker Compose请按照以下步骤安装。 1. 安装 Docker 和 Docker Compose
安装 Docker
# 更新系统
sudo yum update -y# 安装 Docker 依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 安装 Docker
sudo yum install -y docker# 启动 Docker 服务
sudo systemctl start docker# 设置 Docker 开机启动
sudo systemctl enable docker# 检查 Docker 是否安装成功
docker --version安装 Docker Compose
若次步骤觉得太慢建议使用github自行下载后安装 # 自行安装使用这个反之使用下面的
# mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose# 下载最新版本的 Docker Compose
sudo curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose# 给 Docker Compose 添加执行权限
sudo chmod x /usr/local/bin/docker-compose# 检查安装版本
docker-compose --version2. 配置 Redis 容器和网络
在 CentOS 上创建每台服务器所需的 Redis 配置 和 Docker 网络确保各容器之间的网络连接。
假设你有三台服务器Server 1、Server 2 和 Server 3每台服务器运行两个 Redis 实例。需要做以下操作
第一步为每台服务器创建 docker-compose.yml 配置文件 在 Server 1、Server 2 和 Server 3 上创建和配置 docker-compose.yml 文件。
配置文件示例 创建一个目录并进入该目录
mkdir ~/redis-cluster
cd ~/redis-clusterdocker-compose.yml 示例
version: 3services:redis-7001:image: redis:6.0container_name: redis-7001ports:- 7001:7001- 17001:17001volumes:- ./7001/data:/data- ./7001/redis.conf:/etc/redis/redis.confcommand: redis-server /etc/redis/redis.confnetworks:- redis-clusterrestart: alwaysredis-7002:image: redis:6.0container_name: redis-7002ports:- 7002:7002- 17002:17002volumes:- ./7002/data:/data- ./7002/redis.conf:/etc/redis/redis.confcommand: redis-server /etc/redis/redis.confnetworks:- redis-clusterrestart: alwaysnetworks:redis-cluster:driver: bridge
redis.conf实例
# 绑定所有网络接口允许外部机器连接
bind 0.0.0.0
# 设置节点的端口为每个节点配置不同端口
port 7001
cluster-enabled yes
# 节点的集群配置文件
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000
maxclients 10000
# 不进行持久化存储节省资源
save
# 禁用 append-only 文件持久化
appendonly no
protected-mode no
loglevel notice
logfile
# 集群的对外配置announce 是告知外部客户端的节点地址
cluster-announce-ip 192.168.15.128
cluster-announce-port 7001
cluster-announce-bus-port 17001修改配置 在 Server 2 和 Server 3 上修改 docker-compose.yml 文件调整每台服务器上的端口。例如
Server 2redis-7003 和 redis-7004 Server 3redis-7005 和 redis-7006
3. 启动 Redis 容器
创建并启动 Docker 容器 在每台服务器上执行以下命令以启动 Redis 容器。
docker-compose up -d这将会根据配置创建并启动 Redis 容器。
使用 docker ps 可以查看正在运行的容器
docker ps检查容器启动状态 在每台服务器上确认容器启动后没有错误。
4. 设置 Redis 集群
当所有 Redis 容器在三台服务器上运行并可以互相通信时我们将通过 redis-cli 创建一个 Redis 集群。
创建 Redis 集群 在任意一台服务器如 Server 1上执行以下命令创建 Redis 集群
docker exec -it redis-7001 redis-cli --cluster create \
192.168.15.128:7001 192.168.15.128:7002 \
192.168.15.129:7003 192.168.15.129:7004 \
192.168.15.130:7005 192.168.15.130:7006 \
--cluster-replicas 1这里 192.168.15.128:7001、192.168.15.129:7003 和 192.168.15.130:7005 是主节点7002、7004、7006 是它们的从节点。 –cluster-replicas 1 表示为每个主节点设置一个从节点。 根据提示输入 yes完成集群创建。
4.1 集群创建异常处理
搭建Redis集群的过程中执行到cluster create : … 的时候发现程序发生阻塞显示Waiting for the cluster to join 的字样然后就无休无尽的等待…
解决方案
关注点1防火墙的问题记得开放防火墙关注点2Redis集群需要关注如下内容 集群总线 每个Redis集群中的节点都需要打开两个TCP连接。一个连接用于正常的给Client提供服务比如6379还有一个额外的端口通过在这个端口号上加10000作为数据端口例如redis的端口为6379那么另外一个需要开通的端口是6379 10000 即需要开启 16379。16379端口用于集群总线这是一个用二进制协议的点对点通信信道。这个集群总线Cluster bus用于节点的失败侦测、配置更新、故障转移授权等等。 firewall-cmd --list-portsfirewall-cmd --zonepublic --add-port7001/tcp --add-port7002/tcp --add-port17001/tcp --add-port17002/tcp --permanent
firewall-cmd --reloadfirewall-cmd --zonepublic --add-port7003/tcp --add-port7004/tcp --add-port17003/tcp --add-port17004/tcp --permanent
firewall-cmd --reloadfirewall-cmd --zonepublic --add-port7005/tcp --add-port7006/tcp --add-port17005/tcp --add-port17006/tcp --permanent
firewall-cmd --reload验证集群
创建完成后可以在任意节点执行以下命令查看集群状态
docker exec -it redis-7001 redis-cli -p 7001 cluster nodes5. 验证和测试
查看集群节点确认每个节点是否分配了槽并且是主从配置。 对集群进行基本的增删改查操作确保每个节点之间的数据同步。 测试 向集群写入数据
docker exec -it redis-7001 redis-cli -c -p 7001 set key1 value1从其他节点读取数据
docker exec -it redis-7002 redis-cli -c -p 7002 get key1总结
你需要在每台服务器上使用 Docker 容器部署 Redis 实例每台服务器配置两个 Redis 容器一个主节点一个从节点。 使用 Docker Compose 管理每台服务器上的 Redis 实例。 配置 Redis 集群时可以通过 redis-cli --cluster create 命令来创建集群。 Redis 集群成功创建后可以通过 cluster nodes 命令验证集群状态。 使用上述步骤你可以在 CentOS 上安装并成功配置一个包含 6 个节点的 Redis 集群分布在 3 台服务器 上。