redis集群相关资料

Cluster简介

Redis 3.0引入的cluster。cluster是具有有自动数据分片、容错、针对读取速度有了显著的提升、改进了AOF重写等的redis分布式实现。

Redis 集群是一个分布式(distributed)、容错(fault-tolerant)的 Redis 实现, 集群可以使用的功能是普通单机 Redis 所能使用的功能的一个子集(subset)。

Redis 集群中不存在中心(central)节点或者代理(proxy)节点, 集群的其中一个主要设计目标是达到线性可扩展性(linear scalability)。

Redis 集群为了保证一致性(consistency)而牺牲了一部分容错性: 系统会在保证对网络断线(net split)和节点失效(node failure)具有有限(limited)抵抗力的前提下, 尽可能地保持数据的一致性。

目前支持的集群特性

  1. 节点自动发现
  2. slave->master 选举,集群容错
  3. Hot resharding:在线分片
  4. 集群管理
  5. 基于配置(nodes-port.conf)的集群管理
  6. ASK 转向/MOVED 转向机制.

redis cluster 架构

架构细节:

(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.

(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.

(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可

(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value

redis-cluster选举:容错

(1)选举过程是集群中所有master参与,如果半数以上master节点与master节点通信超时(cluster-node-timeout),认为当前master节点挂掉.

(2):什么时候整个集群不可用(cluster_state:fail)?

a:如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成集群的slot映射[0-16383]不完成时进入fail状态. ps : redis-3.0.0.rc1加入cluster-require-full-coverage参数,默认关闭,打开集群兼容部分失败.

b:如果集群超过半数以上master挂掉,无论是否有slave集群进入fail状态.

ps:当集群不可用时,所有对集群的操作做都不可用,收到((error) CLUSTERDOWN The cluster is down)错误

参考

http://redisdoc.com/

时间: 2024-11-10 04:55:23

redis集群相关资料的相关文章

redis集群 相关

redis集群中如果有3对主从节点,其中有一对挂掉 集群还能正常工作吗?(不能) 1.正常启动3对主从节点的集群,查看集群节点信息 2.kill掉当前的一个主节点6379 发现,与6379对应的从节6389点变为主节点,仍能正常从集群查询数据 3.关闭6389主节点,并进行数据查询 发现获取数据异常! 分析: 消息机制 redis cluster集群中通过消息来进行通信.消息共有以下5种. meet消息:发送者会向接受者发送cluster meet命令,请求接受者将发送者加入到集群中.上文提到的

Redis集群技术及Codis实践

"高效运维最佳实践"是InfoQ在2015年推出的精品专栏,由触控科技运维总监萧田国撰写,InfoQ总编辑崔康策划. 前言 如开篇文章所言,高效运维包括管理的专业化和技术的专业化.前两篇我们主要在说些管理相关的内容,本篇说一下技术专业化.希望读者朋友们能适应这个转换,谢谢. 互联网早在几年前就已进入Web 2.0时代,对后台支撑能力的要求,提高了几十倍甚至几百倍.在这个演化过程中,缓存系统扮演了举足轻重的角色. 运维进化到今天,已经不是重复造轮子的时代.所以,我们在架构优化和自动化运维

Redis使用记录-相关资料汇总

1 redis在centos上的安装 http://www.cnblogs.com/hanyinglong/p/5036558.html 2 redis在windows上的可视化GUI工具 https://redisdesktop.com/download 3 redis的中文官网 介绍很详细 http://www.redis.cn/ 基本上这3个站点就能把redis跑起来. redis在java上的使用 1是使用Jedis,类似JDBC,对相关连接进行了封装,相关的api还算友好,刚开始学习用

Redis集群~StackExchange.redis连接Sentinel服务器并订阅相关事件(原创)

回到目录 对于redis-sentinel我在之前的文章中已经说过,它是一个仲裁者,当主master挂了后,它将在所有slave服务器中进行选举,选举的原则当然可以看它的官方文章,这与我们使用者没有什么关系,而对于sentinel来说,它在进行主从切换时,会触发相关事件,这是和我们开发人员有关系的,如当+switch-master事件被触发时,说明当前Sentinal已经完成了一次主从的切换,并所有服务已经正常运转了. 下面是我这几天作的测试,对于Twemproxy代理和Sentinal哨兵都已

Redis(五)、Redis数据库集群相关

Redis数据库集群 第1章 集群简介 Redis 集群是一个分布式(distributed).容错(fault-tolerant)的 Redis 实现, 集群可以使用的功能是普通单机 Redis 所能使用的功能的一个子集(subset),是一个可以在多个 Redis 节点之间进行数据共享的设施(installation). Redis 集群中不存在中心(central)节点或者代理(proxy)节点, 集群的其中一个主要设计目标是达到线性可扩展性(linear scalability). Re

Redis简介、高可用及集群相关配置

一 Redis 持久化和复制 1 Redis持久化的两种方式: 1 RDB:可以再指定的时间间隔内生成数据集的时间点快照(每隔一定的时间做一个快照,进行将其刷新到磁盘上,断电)2 AOF:把服务器执行的所有写操作命令记录下来,然后在服务器启动时,通过重新执行这些命令来还原数据集,AOF文件的操作相当于自增操作,Redis可以同时使用RDB和AOF这两种方式.当Redis重启时,会优先使用AOF文件来还原数据集.你也可以关闭持久化功能RDB:可以做备份,RDB可以最大化Redis性能,父进程在保存

C#使用Redis集群缓存

C#使用Redis集群缓存 本文介绍系统缓存组件,采用NOSQL之Redis作为系统缓存层. 一.背景 系统考虑到高并发的使用场景.对于并发提交场景,通过上一章节介绍的RabbitMQ组件解决.对于系统高并发查询,为了提供性能减少数据库压力,我们加入缓存机制,可以不同层次加入缓存支持,本文主要介绍应用服务层和数据层之间加入缓存机制提升性能.业界缓存组件有Redis.Memcached.MemoryCache.本系统采用Redis缓存组件,有些系统将Redis当作MQ使用,此场景本系统用Rabbi

Redis集群方案应该怎么做

方案1:Redis官方集群方案 Redis Cluster Redis Cluster是一种服务器sharding分片技术. Redis3.0版本开始正式提供,解决了多Redis实例协同服务问题,时间较晚,目前能证明在大规模生产环境下成功的案例还不是很多,需要时间检验. Redis Cluster中,Sharding采用slot(槽)的概念,一共分成16384个槽.对于每个进入Redis的键值对,根据key进行散列,分配到这16384个slot中的某一个中.使用的hash算法也比较简单,CRC1

Net分布式系统之五:C#使用Redis集群缓存

本文介绍系统缓存组件,采用NOSQL之Redis作为系统缓存层. 一.背景 系统考虑到高并发的使用场景.对于并发提交场景,通过上一章节介绍的RabbitMQ组件解决.对于系统高并发查询,为了提供性能减少数据库压力,我们加入缓存机制,可以不同层次加入缓存支持,本文主要介绍应用服务层和数据层之间加入缓存机制提升性能.业界缓存组件有Redis.Memcached.MemoryCache.本系统采用Redis缓存组件,有些系统将Redis当作MQ使用,此场景本系统用RabbitMQ,Redis主要用于系