Docker搭建Redis4.0集群(不使用Ruby脚本)

前言

生产服务器没法下载ruby,因此我只能这么干啊。

拉取镜像

docker pull docker:4.0

创建网卡

docker network create redis-net

创建redis集群环境

我的文件是放在/opt/docker/redis-cluster/目录下,这里酌情修改为自己的目录。
sudo mkdir /opt/docker/redis-cluster/
创建模版文件:vim redis-cluster.tmpl

port ${PORT}
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 127.0.0.1 #注意这儿一定是你的外网IP
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes

生成配置文件和数据存放目录:

for port in `seq 7001 7006`; do   mkdir -p ./${port}/conf   && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf   && mkdir -p ./${port}/data; done

这一段的意思就是创建7001-7006目录以及下面的conf和data目录,并将redis-cluster.tmpl中的${port}替换为7001-7006分别复制到各自的conf下的redis.conf中。

创建Redis4.0容器

for port in `seq 7001 7006`; do   docker run -d -ti -p ${port}:${port} -p 1${port}:1${port}   --name="redis-${port}"  -v /opt/docker/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf   -v /opt/docker/redis-cluster/${port}/data:/data   --restart always --name redis-${port} --net redis-net   --sysctl net.core.somaxconn=1024 redis:4.0 redis-server /usr/local/etc/redis/redis.conf; done

经过这一步目前我们已经有了6台独立的redis容器

连接redis容器到集群

打开reids-cli客户端:docker exec -it redis-7001 redis-cli -p 7001
在redis-cli中关联各个容器:cluster meet 127.0.0.1 7001,cluster meet 127.0.0.1 7002,cluster meet 127.0.0.1 7003,cluster meet 127.0.0.1 7004,cluster meet 127.0.0.1 7005,cluster meet 127.0.0.1 7006注意:这儿的127.0.0.1替换成你的外网IP
查看关联信息:cluster nodes注意:第一列是容器id,下面会用到
退出redis-cli:exit

主从配置

我的配置是7001、7002、7003是master,7004、7005、7006是slave
将7004配置为7001的从节点:docker exec -it redis-7004 redis-cli -p 7004 cluster replicate 7001的容器id(一长串字符串),
将7005配置为7002的从节点:docker exec -it redis-7005 redis-cli -p 7005 cluster replicate 7002的容器id(一长串字符串),
将7006配置为7003的从节点:docker exec -it redis-7006 redis-cli -p 7006 cluster replicate 7003的容器id(一长串字符串)
打开reids-cli客户端:docker exec -it redis-7001 redis-cli -p 7001 ,之后执行cluster nodes查看主从分配情况。

主节点分配Redis槽点

给7001分配槽点:docker exec -it redis-7001 redis-cli -p 7001 cluster addslots {0..5461},
给7002分配槽点:docker exec -it redis-7002 redis-cli -p 7002 cluster addslots {5462..10922},
给7003分配槽点:docker exec -it redis-7003 redis-cli -p 7003 cluster addslots {10923..16383}
注意1:不管你有几个主节点,一定要完全分配16383个槽点,不能多也不能少。加节点的话,就必须重复切分部分槽点到新节点上。
注意2:一定要在外面执行这个cluster addslots {a..b}命令,在客户端执行的话只能分配单独的节点,不能分配连续的节点。会报错: ERR Invalid or out of range slot

结尾

到此为止,集群已经搭建完毕!你可以使用客户端去访问了。
别忘了把你的服务器端口7001-7006开放了

原文地址:https://www.cnblogs.com/Lenbrother/p/12222715.html

时间: 2024-07-30 09:25:54

Docker搭建Redis4.0集群(不使用Ruby脚本)的相关文章

关于docker搭建haproxy+nginx集群,主机curl: (7) Failed问题

最近使用docker搭建模拟ngingx+haproxy集群.docker上构建了三个容器,两个NGINX后端web服务器和一个haproxy负载均衡docker ps -a 而且我将web1和web2里的内容设置为不一样(为了方便测试)然后就是haproxy.cfg文件的设置 然后start haproxy我能从宿主机里curl百度网址,但是却无法抓取容器内的网页内容curl www.baidu.comcurl http://127.17.0.1:8000 对于这个问题请问大家有什么解决的办法

centos7/rhel7下安装redis4.0集群

Redis从3.0版本开始支持集群! 集群一般由多个节点组成,节点数量至少6个才能保证组成完整高可用的集群. 每个节点需要开启配置文件中的cluster-enabled yes,让Redis运行在集群模式下. 测试环境: 资源有限,这里使用3台虚拟机模拟6个节点(用端口区分),每台虚机2个节点,如下图: 注:Redis默认端口:6379,这里方便起见,设定从7001~7006来区分6个节点. 操作步骤: Redis下载官网:https://redis.io/ 1. 节点准备 每台机器都先编译安装

CentOS完美搭建Redis3.0集群并附测试

线上的统一聊天和推送项目使用的是redis主从,redis版本2.8.6 redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口:slaveof 192.168.1.197 6379,然后启动主从,主从就搭建好了redis主从中如果主节点发生故障,不会自动切换,需要借助redis的Sentinel或者keepalive来实现主的故障转移 redis集群是一个无中心的分布式redis存储架构,可以在多个节点之间进行数据共享,解决了redis高

redis4.0集群部署

环境OS:Centos 7db:4.0.14主 从192.168.1.118:7001 192.168.1.85:8001192.168.1.118:7002 192.168.1.85:8001192.168.1.118:7003 192.168.1.85:8001 1.下载安装介质我这里下载的是redis-4.0.14.tar.gz下载地址:http://download.redis.io/releases/ -------------------------192.168.1.118上操作-

redis4.0 集群,jedis客户端连接踩坑

使用jedis 2.9.0连接,异常信息: redis.clients.jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set. 说我没有设置密码,当时我就震惊了.我明明设置了密码呀.我用redis-cli连接的时候 还让我输入密码了呢- 检查了好久才想起来,redis-cli默认连接6379,我只给6379设置密码了,实际上要给每个节点都设置密码: config set masterau

使用 Docker 搭建本地 Hadoop 集群

终于开始学习hadoop了,虽然是学校开课了才开始跟着学校的课程学,至少也是开始了.首先要做的就是搭建好一个hadoop的环境,需要三台主机,配置一个master两个slave的架构.老师让我们用vbox来做,但是个人觉得虚拟机太慢了,而且还要开三个,太亏.刚好最近开始接触docker,准备就在docker的环境下搭建hadoop环境. 安装docker 可以考虑使用国内的加速镜像 daocloud.io 注册后可以看到如何使用 由于我已经通过官网的方法安装了,这里就只记录下我的操作: curl

Docker搭建MySQL主从集群,基于GTID

写在前边 搭建MySQL读写分离主从集群,这里未使用binlog方式,使用的是GTID方式 源码见我的Github https://github.com/hellxz/mysql-cluster-docker.git 主从目录结构 . ├── bin │?? ├── add-slave-account-to-master.sh │?? ├── reset-slave.sh │?? ├── slave-replias-master-start.sh │?? └── stop-replicas.sh

Spark修炼之道(进阶篇)——Spark入门到精通:第一节 Spark 1.5.0集群搭建

作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond 本节主要内容 操作系统环境准备 Hadoop 2.4.1集群搭建 Spark 1.5.0 集群部署 注:在利用CentOS 6.5操作系统安装spark 1.5集群过程中,本人发现Hadoop 2.4.1集群可以顺利搭建,但在Spark 1.5.0集群启动时出现了问题(可能原因是64位操作系统原因,源码需要重新编译,但本人没经过测试),经本人测试在ubuntu 10.04 操作系统上可以顺利成功搭建.大家可以利用CentOS

在Docker下搭建Spark+HDFS集群

在Docker下搭建Spark+HDFS集群 1.      在VM中安装Ubuntu OS并实现root登录 (http://jingyan.baidu.com/article/148a1921a06bcb4d71c3b1af.html) 安装Vm增强工具 http://www.jb51.net/softjc/189149.html 2.      安装Docker docker安装方法一 ubuntu14.04以上的版本都是自带docker安装包的:所以可以直接安装:但是这个一般不是最先版本