docker之redis集群部署
docker之redis集群部署
PART01: 3主3从redis集群部署
3主3从redis集群配置


- 关闭防火墙,启动docker服务
如果报以下错误,应该是docker 服务没有启动,可以执行下述命令将启动docker服务
systemctl start docker
- 创建6个redis容器实例
代码
点击查看代码
docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381
docker run -d --name redis-node-2 --net host --privileged=true -v /data/redis/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382
docker run -d --name redis-node-3 --net host --privileged=true -v /data/redis/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383
docker run -d --name redis-node-4 --net host --privileged=true -v /data/redis/share/redis-node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384
docker run -d --name redis-node-5 --net host --privileged=true -v /data/redis/share/redis-node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385
docker run -d --name redis-node-6 --net host --privileged=true -v /data/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
相关命令的分布解释

如果创建成功 通过docker ps可以查看到下图
3.以任何一个容器进入,为六台机器进行集群关系的构建。此处进入redis-node-1容器, 为六台机器进行集群关系的构建
进入容器命令
docker exec -it redis-node-1 /bin/bash
进入容器之后,构建主从关系。
redis-cli --cluster create 192.168.111.147:6381 192.168.111.147:6382 192.168.111.147:6383 192.168.111.147:6384 192.168.111.147:6385 192.168.111.147:6386 --cluster-replicas 1
注意,进入docker容器后才能执行一下命令,且注意自己的真实IP地址;--cluster-replicas 1 表示为每个master创建一个slave节点
通过键入yes等待分配完成,显示所有的16384个slot全部分配完成。
4.链接进入6381作为切入点,进行对于集群分配以及集群状态的查看
reids-cli -p 6381
cluster info
cluster nodes
可以看到node-1 为主节点,id结尾为c8010 而作为从节点的node-5 挂在了node-1上 为node-1的从节点,实现了如下所示的节点主从分配
Master ======> slave
node-1 ======> node-5
node-2 ======> node-6
node-3 ======> node-4
5.单节点进入存数据error错误解决以及路由正确配饰
当配置好redis3主3从集群,通过单节点进入某一个容器并进行相关数据的存储的时候,容易发生存取数据失败的情况
原因:hash槽分段的存在,使得数据key进行hash计算后,不能保证全部落到现在访问的容器范围之内;当前进入的节点是6381,槽点范围为0-5460,k1经过hash计算后得到的槽点为12706超过了redis-node-1的槽点范围,且由于是单节点进入访问,所以路由不允许切换,故显示存储失败;
redis-cli -p 6381 -c
还是通过redis-node-1进行操作,但是通过添加参数 -c 表示以集群的方式进行进入,此时,优化了路由设置,使得3主3从作为一个集群让外界访问,存储数据
通过
redis-cli --cluster check 你的ip:你的port
可以查看当前集群的信息
通过get key 可以获取到存的数据
PART02: 3主3从redis集群容错切换迁移
- 主6381与从机切换 先停止6381
| 主机停机,对应的从机上位
docker之redis集群部署的更多相关文章
- Docker | redis集群部署实战
前面已经简单熟悉过redis的下载安装使用,今天接着部署redis集群(cluster),简单体会一下redis集群的高可用特性. 环境准备 Redis是C语言开发,安装Redis需要先将Redis的 ...
- docker 实现redis集群搭建
摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都想往docker方向做,今天就想来尝试下使用docker搭建redis集群. 首先,我们需要理论知识:Redis Cluster是Re ...
- 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镜 ...
- Redis集群部署及命令
一.简介 redis集群是一个无中心的分布式Redis存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用.可扩展等问题. redis集群提供了以下两个好处: 将数据自动切分(split) ...
- Redis集群部署-windows
Redis集群部署-windows 前言 为了能体验一下部署Redis集群是一种怎么样的体验,所一边做一边写了这篇记录. 1.准备 从这里下载windows服务端 https://github.com ...
- Redis集群部署文档(Ubuntu15.10系统)
Redis集群部署文档(Ubuntu15.10系统)(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如 ...
- Redis集群部署3.0
我用的Mac的终端 ------------------------- 1.Redis简介 centos(5.4) Redis是一个key-value存储系统.和Memcached类似,但是解决了断 ...
- Docker学习-Kubernetes - 集群部署
Docker学习 Docker学习-VMware Workstation 本地多台虚拟机互通,主机网络互通搭建 Docker学习-Docker搭建Consul集群 Docker学习-简单的私有Dock ...
- Redis集群部署与维护
Redis集群部署与维护 目录: 一. 集群架构 二. 集群部署 1. 创建redis-cluster目录 2. 编译redis 3. 编辑redis配置文件 4. 配置redis集群 5. redi ...
随机推荐
- Codeforces Round #721 (Div. 2) AB思维,B2博弈,C题map
补题链接:Here 1527A. And Then There Were K 题目大意: 给一个正整数n,求最大的k,使得 \(n \& (n−1) \& (n−2) \& ( ...
- 分布式搜索引擎 Elasticsearch 的架构分析
一.写在前面 ES(Elasticsearch下文统一称为ES)越来越多的企业在业务场景是使用ES存储自己的非结构化数据,例如电商业务实现商品站内搜索,数据指标分析,日志分析等,ES作为传统关系型数据 ...
- 传统单节点网站的 Serverless 上云
什么是函数?刚刚考完数学没多久的我,脑里立马想到的是自变量.因变量.函数值,也就是y=f(x).当然,在计算机里,函数function往往指的是一段被定义好的代码程序,我们可以通过传参调用这个定义好的 ...
- 9、SpringBoot-mybatis-druid多源数据多源数据
系列导航 springBoot项目打jar包 1.springboot工程新建(单模块) 2.springboot创建多模块工程 3.springboot连接数据库 4.SpringBoot连接数据库 ...
- freeswitch设置最大呼叫时长
概述 freeswitch 作为开源VOIP软交换,对经过fs的每一通电话都要有足够的控制. 在一通电话呼叫中,通话时长是一个重要的数据,客户在实际使用过程中,会有各种针对呼叫时长的场景需求. 本篇文 ...
- feign接口自动生成工具
最近发现开发spring cloud时,编写feign接口是一件痛苦的事,不仅要编写feign接口,还有fallback.请求参数和返回值等,大量重复工作,很浪费时间. 于是便想到可以编写工具自动生成 ...
- 274. H 指数
1.题目介绍 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数.计算并返回该研究者的 h 指数. 根据维基百科上 h 指数的定义:h 代表 ...
- 【MicroPython】 mp对象和 c 类型的转换
[来源]https://www.eemaker.com/micropython-mp-toc.html
- [javaee] - tomcat 下载和配置环境变量
以tomcat9为例 第一步 :下载到本地并解压文件 解压后: 第二步:配置环境变量,在系统变量中添加 CATALINE_HOME ,路径为tomcat的目录 启动tomcat , 启动之后不要关 ...
- [转帖]tiup cluster reload
https://docs.pingcap.com/zh/tidb/stable/tiup-component-cluster-reload 4 Contributors 在修改集群配置之后,需要通过 ...