目前Redis Cluster仍处于Beta版本,Redis 3.0将会加入,在此可以先对其主要功能和原理进行一个预览。参考《Redis Cluster - a pragmatic approach to distribution》。

1 没有集群的Redis

没有集群功能的Redis,每个master-slave主从复制都独立于其他结点,sharding需要在客户端如Jedis中控制。可以使用官方提供的Sentinel监控主从的状态,实现自动的Fail-over切换。具体请参见《Redis主从和HA配置》

2 集群拓扑

所有结点直连其他结点,端口为baseport(6379)+4000。为了带宽和性能,通信协议是二进制的。客户端与结点之间的通信还是正常的ascii协议。

虽然结点是互联并且功能等同的,但实际上结点还是分为master和slave两种。例如下图所示,每个master有两个副本,副本不接受写请求。Redis-trib集群管理器会分配master和slave,使其尽量在不同的物理机上。

3 请求处理

Redis集群客户端分为两种:Dummy和Smart:

Ø  Dummy模式:单连接,随机连接一个结点,对现有客户端代码结构影响最小。

Ø  Smart模式:长连接到许多结点,在客户端缓存一份hashslot=>node的路由表,当接收到服务器的-MOVED响应时更新表项。这种方式具有低延迟,但当集群很大时,客户端会维护许多连接,此时应当共享client对象实例。

当添加新结点,可以使用redis-trib的MIGRATE命令进行re-sharding。

Redis集群功能预览的更多相关文章

  1. Redis集群功能概述

    在单机Redis中介绍过Redis的复制特性以及Redis Sentinel和twemproxy,其中: 复制:可以创建指定服务器的复制品,这些复制品可以用户扩展系统处理读请求的能力: Redis S ...

  2. spark第三篇:Cluster Mode Overview 集群模式预览

    Spark applications run as independent sets of processes on a cluster, coordinated by the SparkContex ...

  3. Redis总结(八)如何搭建高可用的Redis集群

    以前总结Redis 的一些基本的安装和使用,大家可以这这里查看Redis 系列文章:https://www.cnblogs.com/zhangweizhong/category/771056.html ...

  4. 就publish/subscribe功能看redis集群模式下的队列技术(一)

    Redis 简介 Redis 是完全开源免费的,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中 ...

  5. 详细介绍redis的集群功能,带你了解真正意义上的分布式

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

  6. 一种简单实现Redis集群Pipeline功能的方法及性能测试

    上一篇文章<redis pipeline批量处理提高性能>中我们讲到redis pipeline模式在批量数据处理上带来了很大的性能提升,我们先来回顾一下pipeline的原理,redis ...

  7. Redis集群方案介绍

    由于Redis出众的性能,其在众多的移动互联网企业中得到广泛的应用.Redis在3.0版本前只支持单实例模式,虽然现在的服务器内存可以到100GB.200GB的规模,但是单实例模式限制了Redis没法 ...

  8. [个人翻译]Redis 集群教程(下)

    [个人翻译]Redis 集群教程(上) [个人翻译]Redis 集群教程(中) 官方原文地址:https://redis.io/topics/cluster-tutorial 水平有限,如果您在阅读过 ...

  9. 深入剖析Redis系列: Redis集群模式搭建与原理详解

    前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...

随机推荐

  1. [ZooKeeper] 2 环境搭建

    上一篇中我们介绍了 ZooKeeper 的一些基本概念,这篇我们讲一下 ZooKeeper 的环境搭建. ZooKeeper 安装模式 单机模式:ZooKeeper 运行在一台服务器上,适合测试环境: ...

  2. 从零开始搭建口袋妖怪管理系统(1)-从Angular1.x开始

    开坑,一直喜欢口袋妖怪,想着能写点有关的程序. 最近项目要改写管理系统,所以用Angular1.x搭建一个口袋妖怪管理系统试试. 巩固Ng1.x的知识+学习库的用法,然后算是记录一个系统从零开始到成型 ...

  3. python3全栈开发-什么是粘包、粘包现象、如何解决粘包

    一.粘包现象 让我们基于tcp先制作一个远程执行命令的程序(1:执行错误命令 2:执行ls 3:执行ifconfig) 注意注意注意: res=subprocess.Popen(cmd.decode( ...

  4. Linux 虚拟内存和物理内存的理解(转)

    在学习内核之前,因为虚拟内存的关系看过这篇文章,但是有的地方不是很懂. 现在对内核学习一段时间后,感觉这篇博客不错. 虚拟内存: 第一层理解 1.每个进程都有自己独立的4G内存空间,各个进程的内存空间 ...

  5. 洛谷mNOIP模拟赛Day2-将军令

    题目背景 pdf题面和大样例链接:http://pan.baidu.com/s/1cawM7c 密码:xgxv 历史/落在/赢家/之手 至少/我们/拥有/传说 谁说/败者/无法/不朽 拳头/只能/让人 ...

  6. 【Codeforces Round 418】An impassioned circulation of affection DP

                                                            C. An impassioned circulation of affection   ...

  7. bzoj2149拆迁队 斜率优化dp+分治

    2149: 拆迁队 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 397  Solved: 177[Submit][Status][Discuss] ...

  8. 【NOIP2013货车运输】

    描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多 ...

  9. NGUI制作可滚动的文本框(摘,如有侵权,联系删除)

    NGUI制作可滚动的文本框 1.首先创建一个UI Root 2.选择UI Root右键 Create 选择Scoll View创建. 3.Scroll view的大小是可以调节的,调节为你需要的适当大 ...

  10. glusterfs4.0.1 mempool 分析笔记

    关于3.2.5版本分析,详见<GlusterFS之内存池(mem-pool)实现原理及代码详解> 此4.0.1版本内存池与版本3中的描述变化有点大,总的原理还是类似LINUX中的SLAB算 ...