基于Docker的redis集群搭建
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 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
随机推荐
- 003.Kickstart部署之HTTP架构
一 准备 1.1 完整架构:Kickstart+DHCP+HTTP+TFTP+PXE 1.2 组件应用 Kickstart服务端IP:172.24.8.12 DHCP:提供客户端IP,网关,镜像路径等 ...
- (python数据分析)第03章 Python的数据结构、函数和文件
本章讨论Python的内置功能,这些功能本书会用到很多.虽然扩展库,比如pandas和Numpy,使处理大数据集很方便,但它们是和Python的内置数据处理工具一同使用的. 我们会从Python最基础 ...
- 一个垃圾的Android权限框架
一个垃圾的Android权限框架 学习和参考 简书 https://www.jianshu.com/p/2324a2bdb3d4 写在前头 今天突发奇想想要把Android申请权限的流程封装一下,为使 ...
- SQLite中SELECT基本形式
SQLite中SELECT基本形式 每个数据库通常都包含多个表,而每个表又包含多条数据.要获取数据库中的数据,就需要SQL语言提供的查询语句SELECT.本章将讲解和SELECT语句相关的内容,其中包 ...
- 自定义reg52.h头文件(单片机学习重难点核心知识点)
/*-------------------------------------------------------------------------- 自定义REG52头文件 @auth lei @ ...
- iOS主流机型更新
主流机型更新后,舍弃了原有的iPhone 4 ,iPhone 4s, iPhone 5 ,iPhone 5s.增加了iPhone X,iPhone 8和iPhone 8 plus. 总体上屏幕趋于一个 ...
- UIProgressView进度条
//非原创 UIProgressView顾名思义用来显示进度的,如音乐,视频的播放进度,和文件的上传下载进度等. 下面以一个简单的实例来介绍UIprogressView的使用. @interface ...
- 异步处理XML异步数据——以原生的JavaScript与jQuery中的$.ajax()为例
此文档解决以下问题: 一.原生的JavaScript从服务器端输出XML格式数据 1.XMLHttpRequest对象的运用 XMLHttpRequest对象的open()方法 XMLHttpRequ ...
- .w调用action
有两种方法发送Action请求,分别是sendBizRequest和sendBizRequest2,前者返回xml格式的参数,后者提供了返回json或者xml格式的参数的能力. 1.sendBizRe ...
- vs2008快捷键
Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL ...