基于docker的redis集群的搭建方式

 更新时间:2023年11月04日 10:09:51   作者:葒脃坧頭  
这篇文章主要介绍了基于docker的redis集群的搭建方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

本篇基于docker的redis集群cluster搭建。

以三主三从进行测试,redis选用5.0之前的版本(redis5.0及之后的版本与redis5.0之前的版本搭建稍有不同,redis5.0之前的版本搭建略显复杂,所有以5.0之前的版本进行测试)。

5.0之后的可以参考另外一篇博客。

1、准备镜像

redis镜像

说明:此处我用的仓库自建镜像,用官方镜像亦可,具体可参考这篇文章

2、启动容器

dvr start redis
[root@iZuf612i9bshiuw3zzlfe9Z redis]# docker ps
CONTAINER ID        IMAGE               COMMAND               CREATED              STATUS              PORTS                    NAMES
a30eb6b31dd7        redis:base          "/usr/sbin/sshd -D"   7 seconds ago        Up 5 seconds        0.0.0.0:6374->6379/tcp   redis_redis6374_1
ca3d87fdfece        redis:base          "/usr/sbin/sshd -D"   43 seconds ago       Up 42 seconds       0.0.0.0:6375->6379/tcp   redis_redis6375_1
adf814337f42        redis:base          "/usr/sbin/sshd -D"   About a minute ago   Up About a minute   0.0.0.0:6376->6379/tcp   redis_redis6376_1
1f15f8336ff6        redis:base          "/usr/sbin/sshd -D"   About a minute ago   Up About a minute   0.0.0.0:6377->6379/tcp   redis_redis6377_1
565a1ce0511c        redis:base          "/usr/sbin/sshd -D"   2 minutes ago        Up 2 minutes        0.0.0.0:6378->6379/tcp   redis_redis6378_1
19df06bb5f90        redis:base          "/usr/sbin/sshd -D"   4 minutes ago        Up 4 minutes        0.0.0.0:6379->6379/tcp   redis_redis6379_1

3、进入安装redis

docker exec -it redis_redis6379_1 bash
apt update
apt upgrade
apt install redis -y

说明:其他容器亦同

4、修改配置文件

69 #bind 127.0.0.1 ::1                   #注释掉此行
88 protected-mode no                     #关闭保护模式
136 daemonize yes                        #后台启动模式
以下是集群的修改:
814 cluster-enabled yes                  #开启 Redis Cluster
822 cluster-config-file nodes-6379.conf  #集群配置文件,每个容器配置改唯一就行
828 cluster-node-timeout 15000           #集群中的节点能够失联的最大时间,超过这个时间,该节点就会被认为故障
672 appendonly yes                       #开启AOF模式

说明:其他容器的配置除了cluster-config-file nodes-6379.conf改为不同,其余配置均相同。

5、启动redis服务

root@redis6379:/# /etc/init.d/redis-server start
Starting redis-server: redis-server.
root@redis6379:/# ps -aux |grep redis
redis     7376  0.0  0.1  48504  2572 ?        Ssl  11:51   0:00 /usr/bin/redis-server *:6379 [cluster]
root      7381  0.0  0.0  11460   724 ?        S+   11:51   0:00 grep --color=auto redis

6、拷贝redis-trib.rb

docker cp redis-trib.rb redis_redis6379_1:/usr/bin

说明:从5.0之前的版本里拷贝,tar包解压后的src目录下,附redis-4.0.11版本:http://download.redis.io/releases/redis-4.0.11.tar.gz

7、创建集群

#安装ruby环境
apt install -y ruby
#安装redis
gem install redis
#创建集群
redis-trib.rb create --replicas 1 172.18.62.27:6379 172.18.62.29:6379 172.18.62.30:6379 172.18.62.31:6379 172.18.62.32:6379 172.18.62.33:6379

集群信息

集群成功

8、集群验证

#登录
redis-cli -c
说明:-c的目的是为解决“(error) MOVED 5798”报错
root@redis6379:/# redis-cli 
127.0.0.1:6379> set name haha
(error) MOVED 5798 172.18.62.29:6379
127.0.0.1:6379> exit
root@redis6379:/# redis-cli -c
127.0.0.1:6379> set name haha
-> Redirected to slot [5798] located at 172.18.62.29:6379
OK

《数据验证》验证如下:

集群测试

《主从切换验证》验证如下:172.18.62.33为172.18.62.29的从,现在我们停掉29,测试33的切换

切换之前:

主从切换

切换之后:

集群主从切换

集群主从切换

到此,redis集群cluster搭建完成!redis集群非docker基于5.0以上版本密码认证搭建可参考:redis5.0以上版本基于密码认证搭建

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker 部署 vue 项目的详细流程

    Docker 部署 vue 项目的详细流程

    使用Docker配合Nginx部署Vue3项目涉及多个步骤:首先安装Nginx,然后创建挂载目录及配置文件;接着打包Vue项目并上传至服务器;最后创建Dockerfile,构建镜像并启动容器,部署完成后,通过IP访问应用以验证是否成功
    2024-09-09
  • docker run 运行容器自动结束的解决

    docker run 运行容器自动结束的解决

    这篇文章主要介绍了docker run 运行容器自动结束的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • docker部署Nestjs的简单配置实现

    docker部署Nestjs的简单配置实现

    使用Docker部署NestJS应用程序可以确保在不同的环境中运行一致,并且避免了由于依赖关系或配置问题导致的部署错误,本文主要介绍了docker来部署Nestjs的简单配置,感兴趣的可以了解一下
    2024-02-02
  • Docker 发布自定义镜像到公共仓库的方法实现

    Docker 发布自定义镜像到公共仓库的方法实现

    在本文我们将学习如何使用Docker从公共仓库拉取Nginx镜像,定制该镜像,添加自定义配置文件,并将定制后的镜像发布到公共仓库,同时指定自定义的名称、描述和版本号,感兴趣的可以了解一下
    2024-01-01
  • docker compose idea CreateProcess error=2 系统找不到指定的文件的问题

    docker compose idea CreateProcess error=2 系统找不到指定的文件的问题

    这篇文章主要介绍了docker compose idea CreateProcess error=2 系统找不到指定的文件的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • docker 容器网络模式详解

    docker 容器网络模式详解

    这篇文章主要为大家介绍了docker 容器网络模式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Docker+Jenkins+Gitee自动化部署maven项目的实现

    Docker+Jenkins+Gitee自动化部署maven项目的实现

    本文主要介绍了Docker+Jenkins+Gitee自动化部署maven项目的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 快速使用docker-compose部署clickhouse的教程

    快速使用docker-compose部署clickhouse的教程

    ClickHouse 的工作速度比传统方法快 100-1000 倍。它适用于大数据、业务分析和时间序列数据。在这个小教程中,我将向您展示如何以最少的设置安装 ClickHouse,感兴趣的朋友一起看看吧
    2021-11-11
  • vscode利用ssh配置docker容器并开启远程编程模式的详细步骤

    vscode利用ssh配置docker容器并开启远程编程模式的详细步骤

    这篇文章主要介绍了vscode利用ssh配置docker容器内开启远程编程模式,本文给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Docker多容器连接(以Tomcat+Mysql为例)

    Docker多容器连接(以Tomcat+Mysql为例)

    这篇文章主要介绍了Docker多容器连接(以Tomcat+Mysql为例),Docker提供了多个容器直接访问的方法,可以使多个容器直接通过网络端口进行访问
    2017-03-03

最新评论