docker实验--redis集群搭建
背景介绍:
我经常在做一些小项目的时候,采用了Redis来做缓存,但是都是基于单节点的,一旦redis挂了,整个项目就挂了。于是乎,想到了多节点集群的方式来使用,就开始折腾着怎么去搭建这个集群。在网上参考了一些大佬的做法以后,发现使用的ruby脚本已经过时了,所以就基于他们的方法做了一定的更新,如果有误,欢迎批评指正。
环境准备:
centOS7,Docker,redis-cli
要点:
a.Redis集群至少需要3个节点(笔者认为最好是部署奇数个节点),因为投票容错机制要求超过一半的节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群。具体宕机机制参考https://www.cnblogs.com/dadonggg/p/8628735.html
b.要保证集群的高可用,需要每个节点都有从节点,也就是备份节点,所以Redis集群至少需要6台服务器。在本次实验中,笔者将使用docker来启动多个redis实例。
具体步骤:
1.安装docker。
- yum update -y && yum install docker
2.启动docker服务。
- service docker start
3.拉取redis镜像。
- docker pull redis
4.创建redis-cluster目录
- cd /home
- mkdir redis-cluster
5.下载并安装redis-cli(此过程如果报错,请检查是不是和ruby有关,尝试安装ruby。yum install ruby -y)
- cd redis-cluster
- curl -O http://download.redis.io/redis-stable.tar.gz
- tar xvzf redis-stable.tar.gz
- cd redis-stable
- make
- cp src/redis-cli /usr/bin/
6.创建并启动redis容器(因为存在大量重复的操作,采取脚本创建)。
a.创建模板文件redis-cluster.tmpl,把以下内容粘贴到里面 把ip地址换成你自己主机的ip
- touch redis-cluster.tmpl
- port ${PORT}
- protected-mode no
- cluster-enabled yes
- cluster-config-file nodes.conf
- cluster-node-timeout
- cluster-announce-ip 主机IP地址
- cluster-announce-port ${PORT}
- cluster-announce-bus-port ${PORT}
- appendonly yes
b.批量脚本ex01.sh,ex02.sh(方便后续重复搭建,也可以直接运行)。(第二个脚本里,如果是阿里云,要添加安全组,除了7000-7005端口,还要开放17000-17005端口,我使用的是腾讯云,于是就没开)。
- touch ex01.sh
- for port in
- do
- echo "port=$port"
- mkdir -p ./$port/conf
- PORT=$port envsubst < ./redis-cluster.tmpl > ./$port/conf/redis.conf
- mkdir -p ./$port/data;
- done
- touch ex02.sh
- do
- docker run -d -ti -p ${port}:${port} -v /home/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /home/redis-cluster/${port}/data:/data --restart always --name redis-${port} --sysctl net.core.somaxconn= redis redis-server /usr/local/etc/redis/redis.conf
- done
7.所有事情准备完毕。
- sh ex01.sh
- sh ex02.sh
- docker ps -a
保持所有容器都在running状态。
8.使用redis客户端把集群转起来。把ip换成自己主机真实ip.
- redis-cli --cluster create ip: ip: ip: ip:7003 ip: ip: --cluster-replicas
使用如下命令进行验证:
redis-cli --cluster info 节点ip:端口
发现master节点是7000 7002 7001
slave节点是 7003 7004 7005
至此集群搭建成功。
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 ...
- 基于Docker的redis集群搭建
Redis集群官方介绍:http://www.redis.cn/topics/cluster-tutorial.html 基于Docker搭建Redis集群 环境:6个节点,三主三从 制作Redis镜 ...
- docker 实现redis集群搭建
摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都想往docker方向做,今天就想来尝试下使用docker搭建redis集群. 首先,我们需要理论知识:Redis Cluster是Re ...
- 基于Dokcer搭建Redis集群搭建(主从集群)
最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得之前写的这篇 <基于Docker的Redis集群搭建> 文章一定是有问题了,所以我花了几分钟浏览之前的文章总结了下面几 ...
- 分享知识-快乐自己:redis集群搭建
Redis介绍: 1.开源的NoSql数据库 2.C语言编写 3.基于内存运行,并且支持持久化 4.Key value存储 5.是主流的Nosql数据库之一 Redis优点: 1.内存使用方面,表现优 ...
- docker redis4.0集群搭建
一.前言 redis集群对于很多人来说非常熟悉,在前些日子,我也有一位大兄弟也发布过一篇关于在阿里云(centOS7)上搭建redis 集群的文章,虽然集群搭建的文章在网上很多,我比较喜欢这篇文章的地 ...
- 25.redis集群搭建笔记
###Redis集群### 0.准备 软件: redis-3.0.0.gem redis-3.0.0.tar.gz#源码 1.安装ruby环境 redis基于ruby槽位计算,hash算法技术,k ...
- Redis 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
- 二、redis集群搭建
redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...
随机推荐
- 小白专场-是否同一颗二叉搜索树-python语言实现
目录 一.二叉搜索树的相同判断 二.问题引入 三.举例分析 四.方法探讨 4.1 中序遍历 4.2 层序遍历 4.3 先序遍历 4.4 后序遍历 五.总结 六.代码实现 一.二叉搜索树的相同判断 二叉 ...
- 初识Node.js之Node与java作为后台服务器的对比
> 文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号.  - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)
简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...
- 一步步构建.NET Core Web应用程序---基本项目结构
前言 随着.NET Core日益成熟, 我作为C#&.NET体系中的一份子也加入了.NET Core 这一体系中,随着不断学习, 接触到的各种框架日益庞杂,接下来我会由一个新手的角度把整个基于 ...
- cvc-complex-type.2.3: Element 'dependency' cannot have character [children], because the type's cont
直接复制网上的pom引入,报错 解决:自己手动输入一遍,不用直接复制,因为复制的时候,项目中编码跟网页上编码不一致,很容易导致出问题.
- ng 循环数据
显示数据的索引值 在ts中 public list:any[]=[ {title:"新闻1",},{title:"新闻2"},{title:"新闻3& ...
- 关于CSS书写规范、顺序
关于CSS的书写规范和顺序,是大部分前端er都必须要攻克的一门关卡,如果没有按照良好的CSS书写规范来写CSS代码,会影响代码的阅读体验.这里总结了一个CSS书写规范.CSS书写顺序供大家参考,这些是 ...