基于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 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
随机推荐
- 字符串处理-Hdu1004
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1004 题目大意:给你一个数n,要求输入n个字符串,在这n个字符串中,我们需要输出出现次数最多的字符串. ...
- mac 回车键、空格键失灵(非物理原因)解决方法
1.关机2.按住shift+control+option+开关机键,大概10秒左右,观察键盘电源灯是否变色,确定是否硬件故障,不变色表正常.3.先按下开关机键后,放开.然后同时按住option+com ...
- 通过反射的方式注入自己的ShutdownHook并清除其他HOOK
String className = "java.lang.ApplicationShutdownHooks"; Class<?> clazz = Class.forN ...
- 微信里面防止下拉"露底"组件
前言 在微信里面浏览页面的时候,有一个很管用的方法可以区分这个页面是原生的还是H5形式的.随便打开一个页面,用力往下扯的时候,如果页面上方出现了"黑底",黑底上有一行诸如网页由ga ...
- python+imageMagick写的一个压缩图片脚本
!/usr/bin/python import os import cPickle as p import re import Image def imageCompre(imagedir = '.' ...
- 线程安全地获取插入mysql的条目的id
在往mysql中插入条目时有时会希望能得到该插入条目的id,一种方式是再执行一个select语句条件为max(id)来获取,但这种形式在并发环境里并不是线程安全的,因为在你完成插入到再执行一个sele ...
- 10.25 正睿停课训练 Day9
目录 2018.10.25 正睿停课训练 Day9 A 数独(思路 DP) B 红绿灯(最短路Dijkstra) C 轰炸(计算几何 圆并) 考试代码 B C 2018.10.25 正睿停课训练 Da ...
- AGC 016C.+/- Rectangle(思路 构造)
题目链接 首先想到同样例1的构造方式.即不得不填负的格子填\(-h*w\),其余填\(1\).直接这样能过二三十个点. 只这样不对.比如1 4 1 3,会输出无解(会填[1 1 -3 1]).怎么改呢 ...
- navicat 官方使用手册,中文版,快捷键大全
2017年1月23日09:52:51 这个官方中文文档很详细 https://www.navicat.com.cn/manual/online_manual/cn/navicat/win_manual ...
- Android监听view的attached或detached状态
我们在开发中,希望监听View的attached或detached状态,来进行比如eventbus的注册与解注册的操作,非常的方便实用. 可以使用系统给我们提供的listener,代码使用如下: mV ...