redis cluster 集群畅谈(二)
上一篇http://www.cnblogs.com/qinyujie/p/9029482.html, 主要讲解 redis cluster 集群 搭建,本篇主要讲解实验多master写入、读写分离、实验自动故障切换(高可用性),下面直接开始吧。
上一篇我们搭建完了redis cluster 集群,下面进行数据存储测试
多master写入 - 海量数据的分布式存储
当我们set 数据的时候会发现如下图问题:

通过上图发现,当插入key1、key2、key3 时报错,它要求我们到相应的master 节点去进行写入,没错,这就是多master写入,以上就验证了,实际的数据写入是要到相应的master 进行操作的,每个master 都可以计算,然后将请求转发至真正的操作节点进行。
根据上图redis 切换到 192.168.43.17:7003 进行key1 1 的写入,如下图

总结:redis cluster写入数据的时候,可以将请求发送到任意一个master上去执行,但是每个 master 都会计算这个 key 对应的 CRC16 值,然后对16384个 hashslot 取模,找到 key 对应的 hashslot,根据 hashslot 寻找对应的master。如果对应的master就在自己本地的话,set key4 4,key4 这个 key 对应的 hashslot 就在自己本地,那么自己就进行写入了。但是如果计算出来的 hashslot 在其他 master 上,那么就会给客户端返回一个 moved error,告诉你,你得到哪个 master 上去执行这条写入的命令。
多master的写入保持每个master都可以进行数据的写入,每条数据只能存在于一个 master 和相应的 slave 上,每条数据只能由对应的 master 负责。
上面说了,每次写入一条数据,如果不在本地 master ,还需要手动切换到对应的master 上去执行,这就相当麻烦了。能不能将手动的方式交给redis 自动切换执行呢 ?
redis-cli -h 192.168.43.16 -p 7001 -c // -c 表示将数据写入move err 手动切换的方式让 redis 自身自动去做

上图可以看出,redis 做了redirected 重定向,读取数据也是一样的。
slave数据读取 - 读写分离
前面说过,redis cluster 支持读写分离,实际上这个概念在cluster 中已经不是那么重要了,因为水平扩容(多master就已经解决或者实现了 redis replication 主从架构 一主多从的读写分离效果),我们在生产环境中都会发现,直接使用 master 进行读写了。当然redis cluster 还是支持 slave 读的(默认是不支持slave节点读,在读的时候我们需要先执行下 readonly,如下图所示:
- 先看下 192.168.43.16:7001 对应的 slave 是啥

- 192.168.43.16:7002 slave 上读取数据

上图可以看出,redis cluster 默认slave 也是不能读的,如果要读取,需要执行 readonly,就可以了。
注意:在redis cluster的核心的理念里,slave 主要是用做高可用的,每个master挂一两个slave,主要是做数据的热备,还有master故障时的主备切换,实现高可用的。
自动故障切换 - 高可用性
查看集群信息
redis-trib.rb check 192.168.43.16:7001
下面我们来测试将 192.168.43.16:7001 master kill 掉,看看 192.168.43.16:7002 slave 是否自动切换为master,如下图所示:



通过上图可以看出,redis cluster 集群自身具备了redis repliction + sentinal 哨兵 的故障切换功能,从而实现了高可用性。
redis cluster 集群畅谈(二)的更多相关文章
- redis cluster 集群畅谈(三) 之 水平扩容、slave自动化迁移
上一篇http://www.cnblogs.com/qinyujie/p/9029522.html, 主要讲解 实验多master写入.读写分离.实验自动故障切换(高可用性),那么本篇我们就来聊了聊r ...
- redis cluster 集群畅谈(一)
redis单机在大数据量情况的会出现瓶颈问题,通过redis 主从架构和 哨兵集群结合可以实现99.99% 高可用 .水平扩容支持更高QPS的解决方案. 在大数据量面前,主从架构结合哨兵集群的解决方案 ...
- Redis Cluster集群搭建与配置
Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...
- 深入分析redis cluster 集群
深入分析redis cluster 集群安装配置详解 下面小编来为各位介绍一篇深入分析redis cluster 集群安装配置详解,如果你希望做数据库集群就可以来看看此文章的哦. http://rub ...
- Redis Cluster集群主从方案
本文介绍一种通过Jedis和Cluster实现Redis集群(主从)的高可用方案,该方案需要使用Jedis2.8.0(推荐),Redis3.0及以上版本(强制). 附:Redis Cluster集群主 ...
- Redis Cluster集群架构实现(四)--技术流ken
Redis集群简介 通过前面三篇博客的介绍<Redis基础认识及常用命令使用(一)--技术流ken>,<Redis基础知识补充及持久化.备份介绍(二)--技术流ken>,< ...
- 【精】搭建redis cluster集群,JedisCluster带密码访问【解决当中各种坑】!
转: [精]搭建redis cluster集群,JedisCluster带密码访问[解决当中各种坑]! 2017年05月09日 00:13:18 冉椿林博客 阅读数:18208 版权声明:本文为博主 ...
- Redis Cluster集群知识学习总结
Redis集群解决方案有两个: 1) Twemproxy: 这是Twitter推出的解决方案,简单的说就是上层加个代理负责分发,属于client端集群方案,目前很多应用者都在采用的解决方案.Twem ...
- centos6下redis cluster集群部署过程
一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从 ...
随机推荐
- 关于解决用tutorial7教程中的代码打造一款自己的播放器中的声音噪音问题
////////////////////////////////////////////////////////////////////////////////////////////对于用FFMPE ...
- put ListView in a ScrollView(bug fixed)
Android: put ListView in a ScrollView When I need to use ListView with other controls on the same ...
- BinarySearchTree二叉搜索树的实现
/* 二叉搜索树(Binary Search Tree),(又:二叉查找树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; ...
- luasql在Fedora20下的安装与使用示例
主要参考:http://www.boll.me/archives/614 luasql安装, 在终端通过yum命令安装: yum -y install lua-sql 接下来写个测试的lua脚本文件( ...
- 内网DNS投毒技术劫持会话
工具列表: tcpdump Ferret Hamster node closurether 拓扑环境: 攻击机:Kali 10.10.10.237 被攻击机: win7 10.10.10.232 因为 ...
- js使用正则表达式从url中获取参数值
//从url中获取参数值 function getvl(name) { var reg = new RegExp("(^|\\?|&)"+ name +"=([^ ...
- RGB 颜色对照表
R G B 值 R G B 值 R G B 值 黑色 0 0 0 #000000 黄色 255 255 0 #FFFF00 浅灰蓝色 176 224 230 #B0E0E6 象牙黑 41 36 ...
- ios开发之--从相机或相册选取图片,并带删除操作的demo
多选图片的一个效果,如下图:
- /etc/hostname
我们可以使用 hostname 命令来修改主机名,但只是临时生效,如果想永久生效可以编辑 /etc/hostname 文件,注意不是每个 Linux 发行版都有该文件 root@Ubuntu_Lee: ...
- CentOS5.5环境下布署LVS+keepalived
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://kerry.blog.51cto.com/172631/401253 #!/bin ...