前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Docker搭建redis集群

使用Docker搭建redis集群

作者头像
鳄鱼儿
发布2024-05-21 13:47:40
1270
发布2024-05-21 13:47:40
举报

安装 docker

  1. 安装Docker相关环境包
代码语言:javascript
复制
yum -y install gcc
yum -y install gcc-c++
  1. 安装下载需要的软件包
代码语言:javascript
复制
yum install -y yum-utils
  1. 设置Docker的镜像仓库
代码语言:javascript
复制
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 更新yum软件包索引缓存
代码语言:javascript
复制
yum makecache fast
  1. 安装Docker CE
代码语言:javascript
复制
yum install docker-ce docker-ce-cli containerd.io

提示输入时,输入y,再回车

  1. 启动Docker
代码语言:javascript
复制
systemctl start docker

测试 Docker 是否正常运行

代码语言:javascript
复制
# 查看docker版本
docker version
# 测试运行容器
docker run hello-world

看到输出 docker 版本则表示 docker 已经成功安装,此时我们可以继续运行 hello world 的容器,测试容器是否可以正常运行。

如果 Docker 正常运行,就可以看到 docker 在成功创建容器并运行容器后,输出 hello from Docker!

创建 redis 的 docker 网段

这里将 redis 集群的网段设置为 172.16.0.0/24。

代码语言:javascript
复制
docker network create --driver bridge --subnet 172.16.0.0/24 --gateway 172.16.0.1 redis-net

查看刚刚创建的 redis 网段

代码语言:javascript
复制
docker network ls

创建 redis 的配置文件

先创建 shell 脚本来生成 redis 配置文件

代码语言:javascript
复制
sudo vim redis-node-config.sh

在 redis-node-config.sh 文件中输入以下内容:

代码语言:javascript
复制
#!/bin/bash

# 配置文件存放路径
BASE_PATH=/test/redis
# 创建个数
REDIS_COUNT=6
# ip前缀
REDIS_IP=172.16.0.1

for port in $(seq 1 $REDIS_COUNT);
do
mkdir -p $BASE_PATH/node-$port/conf
mkdir -p $BASE_PATH/node-$port/data
touch $BASE_PATH/node-$port/conf/redis.conf
cat <<EOF > $BASE_PATH/node-$port/conf/redis.conf
port 6379
# 生产环境中为了安全性请绑定当前机器的ip
bind 0.0.0.0
# 启动集群模式
cluster-enabled yes
cluster-config-file nodes.conf
# redis节点宕机被发现的时间
cluster-node-timeout 5000
cluster-announce-ip $REDIS_IP$port
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done

赋予脚本可执行权限

代码语言:javascript
复制
sudo chmod +x redis-node-config.sh

运行脚本创建配置文件

代码语言:javascript
复制
./redis-node-config.sh

查看脚本是否成功生成文件

代码语言:javascript
复制
cd /test/redis
ll

脚本启动 redis 容器

创建启动脚本

代码语言:javascript
复制
sudo vim redis-run.sh

在 redis-run.sh 中输入以下内容:

代码语言:javascript
复制
#!/bin/bash

# 配置文件存放路径
BASE_PATH=/test/redis
# 创建个数
REDIS_COUNT=6
# ip前缀
REDIS_IP=172.16.0.1

for port in $(seq 1 $REDIS_COUNT);
do
docker run -d  -p 637$port:6379 -p 1667$port:16379 \
--name redis-$port \
-v $BASE_PATH/node-$port/data:/data \
-v $BASE_PATH/node-$port/conf/redis.conf:/etc/redis/redis.conf \
--net redis-net \
--ip $REDIS_IP$port \
redis redis-server /etc/redis/redis.conf
done

赋予脚本可执行权限

代码语言:javascript
复制
sudo chmod +x redis-run.sh

运行脚本启动多个 redis 容器

代码语言:javascript
复制
./redis-run.sh

脚本会创建六个 redis 容器并将它们启动起来。

开始搭建 redis 集群

代码语言:javascript
复制
# 进入其中一个容器
docker exec -it redis-1 /bin/bash
# 说明:--cluster :使用cluster的方式搭建集群 --cluster-replicas 1 :一个主机有一个从机
redis-cli --cluster create 172.16.0.11:6379 172.16.0.12:6379 172.16.0.13:6379 172.16.0.14:6379 172.16.0.15:6379 172.16.0.16:6379 --cluster-replicas 1

执行过程中需要输入一次 yes

测试 redis 集群

代码语言:javascript
复制
# 进入redis-1容器
docker exec -it redis-1 /bin/bash
# -c:以集群方式启动
redis-cli -c
# 设置一个键值对
set name berbai01

这里显示是 172.16.0.12 上的 redis 处理了 set 操作。

查看集群节点

代码语言:javascript
复制
cluster nodes

到此已经成功搭建了 redis 的 3 主 3 从集群,上图中 master 为主 redis,slave 则是从 redis。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装 docker
    • 测试 Docker 是否正常运行
    • 创建 redis 的 docker 网段
    • 创建 redis 的配置文件
      • 赋予脚本可执行权限
        • 运行脚本创建配置文件
        • 脚本启动 redis 容器
          • 赋予脚本可执行权限
            • 运行脚本启动多个 redis 容器
            • 开始搭建 redis 集群
            • 测试 redis 集群
              • 查看集群节点
              相关产品与服务
              容器服务
              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档