Redis集群官方介绍:http://www.redis.cn/topics/cluster-tutorial.html
基于Docker搭建Redis集群
环境:6个节点,三主三从
制作Redis镜像:docker build -f dockerfile -t jiang/redis-cluster:4.0.1 .
dockerfile文件:
FROM redis:4.0.1
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN mkdir /usr/local/etc/redis && chown redis:redis /usr/local/etc/redis
ENV REDIS_C=/usr/local/etc/redis
RUN echo "port 6379" > $REDIS_C/redis.conf
RUN echo "cluster-enabled yes" >> $REDIS_C/redis.conf
RUN echo "cluster-config-file nodes.conf" >> $REDIS_C/redis.conf
RUN echo "cluster-node-timeout 5000" >> $REDIS_C/redis.conf
RUN echo "appendonly yes" >> $REDIS_C/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
制作Ruby镜像:docker build -f dockerfile2 -t jiang/my_ruby:2.4 .
dockerfile2文件:
FROM ruby:2.4
RUN gem install redis
ADD ./redis-4.0.1.tgz /usr/local
RUN cd /usr/local && ln -sf redis-4.0.1 redis
分别启动6个节点实例:
docker run --name redis7000 -p 7000:6379 -d jiang/redis-cluster:4.0.1
docker run --name redis7001 -p 7001:6379 -d jiang/redis-cluster:4.0.1
docker run --name redis7002 -p 7002:6379 -d jiang/redis-cluster:4.0.1
docker run --name redis7003 -p 7003:6379 -d jiang/redis-cluster:4.0.1
docker run --name redis7004 -p 7004:6379 -d jiang/redis-cluster:4.0.1
docker run --name redis7005 -p 7005:6379 -d jiang/redis-cluster:4.0.1
查看6个节点的容器IP
docker inspect --format='{{.NetworkSettings.IPAddress}}' redis7000
docker inspect --format='{{.NetworkSettings.IPAddress}}' redis7001
docker inspect --format='{{.NetworkSettings.IPAddress}}' redis7002
docker inspect --format='{{.NetworkSettings.IPAddress}}' redis7003
docker inspect --format='{{.NetworkSettings.IPAddress}}' redis7004
docker inspect --format='{{.NetworkSettings.IPAddress}}' redis7005
启动Ruby容器,进入/bin/bash,创建redis集群
docker run -it jiang/my_ruby:2.4 /bin/bash
# /usr/local/redis/src/redis-trib.rb create --replicas 1 172.17.0.2:6379 172.17.0.3:6379 172.17.0.4:6379 172.17.0.5:6379 172.17.0.6:6379 172.17.0.7:6379
出现下面显示说明集群创建成功:
[OK] All nodes agree about slots configuration.
[OK] All 16384 slots covered.
宿主机上利用redis客户端简单测试:
./redis-cli -c -p 7000
cluster info查看集群信息:
cluster nodes查看集群中各节点信息
基于Docker的redis集群搭建的更多相关文章
-
Docker Swarm redis 集群搭建
Docker Swarm redis 集群搭建 环境1: 系统:Linux Centos 7.4 x64 内核:Linux docker 3.10.0-693.2.2.el7.x86_64 Docke ...
-
基于Twemproxy的Redis集群搭建以及想法
基于Twemproxy的Redis集群方案(转) redis3.0 已经发布了几个月了,但是我这等菜鸟到网上还是没有找到很好的关于搭建redis3.0集群的文章,而且好像很多公司的redis版本还保持 ...
-
docker 实现redis集群搭建
摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都想往docker方向做,今天就想来尝试下使用docker搭建redis集群. 首先,我们需要理论知识:Redis Cluster是Re ...
-
docker实验--redis集群搭建
背景介绍: 我经常在做一些小项目的时候,采用了Redis来做缓存,但是都是基于单节点的,一旦redis挂了,整个项目就挂了.于是乎,想到了多节点集群的方式来使用,就开始折腾着怎么去搭建这个集群.在网上 ...
-
轻松构建 基于docker的 redis 集群
下面跟着我来 一步一步构建redis 集群吧. 集群的目录结构见GitHub源码(文章末尾) 1,安装docker环境,根据自身的操作系统,google下即可. 2,我们在服务器上,搭建所需目录结构. ...
-
quay.io/coreos/etcd 基于Docker镜像的集群搭建
etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现.etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,它使用Go语言编写,并通过Raft一致性算法处理 ...
-
基于Dokcer搭建Redis集群搭建(主从集群)
最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得之前写的这篇 <基于Docker的Redis集群搭建> 文章一定是有问题了,所以我花了几分钟浏览之前的文章总结了下面几 ...
-
25.redis集群搭建笔记
###Redis集群### 0.准备 软件: redis-3.0.0.gem redis-3.0.0.tar.gz#源码 1.安装ruby环境 redis基于ruby槽位计算,hash算法技术,k ...
-
Redis 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
随机推荐
-
windows使用git时出现:warning: LF will be replaced by CRLF
windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时出现提示: 执行以下代码 $ rm -rf .git // 删除.git $ git config -- ...
-
unity之初识shader
自己做个总结先.当然文中很多内容都是从各位大神的文档当中看的.我只是站在巨人的肩膀上. 首先什么是shader?其实就是一个在显示屏当中的显示程序,俗称着色器.它可以定义物体在硬件显示屏当 ...
-
Git 操作 学习资源 网址
用git 有一段时间了,有点自己的小心得.个人觉得相对SVN来讲他更灵活,更合理. 陆陆续续的收集了一些学习资源: 1.理解Xcode 中的Git 版本控制 http://www.open-open. ...
-
Java——Socket编程(一)
1. 网络基础知识 两台机器之间需要进行通信,需要满足的条件: 每个机器有一个唯一的标识符(IP地址): 他们之间进行通信需要用同一种语言(协议): 每台主机上面有多个应用程序,如QQ,微博,迅雷等, ...
-
【Robot Framework】robot framework 学习以及selenium、appnium、requests实践(三)
看了上一章的内容,想必较为简单的case也都会编写了吧,但是是不是觉得,如果能够实现用例参数化,是不是会节省很多劳动力,这节就来学下RF中的user keywords,会让你发现写用例原来可以这么简单 ...
-
Codeforces 374A - Inna and Pink Pony
原题地址:http://codeforces.com/contest/374/problem/A 好久没写题目总结了,最近状态十分不好,无论是写程序还是写作业还是精神面貌……NOIP挂了之后总觉得缺乏 ...
-
Xamarin for android:为button设置click事件的几种方法
原文:Xamarin for android:为button设置click事件的几种方法 在Xamarin中一个最基础的事情,就是为一个button指定click事件处理方法,可是即使是这么一件事也有 ...
-
crawler_编码转换_unicode(&;#24180;)
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @declare: unicode 帮助类<br> ...
-
MYSQL常用函数(时间和日期函数)
CURDATE()或CURRENT_DATE() 返回当前的日期 CURTIME()或CURRENT_TIME() 返回当前的时间 DATE_ADD(date,INTERVAL int keyword ...
-
#C++初学记录(ACM试题1)
A - Diverse Strings A string is called diverse if it contains consecutive (adjacent) letters of the ...