Redis 渐进集群介绍
redis 凭借着强大的功能和可靠的稳定性,应用场景越来越广。逐渐成为软件开发工程师必备的技能之一。
本篇文章,暂不做基本功能的介绍。直接教大家如何部署redis集群。
集群演进主要分为2部分。
一、主从备份机制
一个redis 主服务可以拥有多个从服务;一个从服务器,只可拥有一个主服务。从服务 也可以作为其他服务的主服务。
在redis的复制机制中,主服务器写入的任何数据,都会被从服务器同步。所以一般情况下,从服务都是只读的。
可以衍生的功能操作就是,redis的 读写分离。一般写操作,直接写主服务器,读取操作,可以读取 从服务器。这样可以提高服务的性能。
如何实现主从机制?
实现比较简单,直接修改从服务的redis配置文件。增加一下命令即可:
replicaof <host> <port>
主从备份的机制,解决了数据丢失的问题。但是,如果主机挂掉。数据写入还是无法解决,还是会造成系统有异常。所以,就必须要有更好的方案,于是就有了以下的哨兵模式。
二、哨兵模式
哨兵模式建立在主从备份机制的基础之上。
主从机制的背景下,加入主机服务挂掉。要让所有服务能正常的话,必须要恢复主机的正常,如果恢复不了,就必须启用一个新的主机。
如果这些都靠人为操作来完成,花费的时间,肯定不少。而redis 的哨兵就是redis 提供的自动完成以上操作的功能。
redis sentinel 以心跳的方式检测主服务器及其下属从服务器的运行情况。并在主服务异常的时候,实施故障转移,从从服务器中以特定的规则,选出下一个从服务器作为新的主服务器,以保证不影响业务系统提供正常的服务。
如何启动哨兵?其实很简单,只需要在 redis 所在目录下 新建一个sentinel.conf文件,文件内容如下 :
port 26379
sentinel monitor <master_name> <ip> <port> <quorum>
启动sentinel命令 : redis-server sentinel.conf --sentinel
需要注意的是
1、sentinel monitor 只需要 配置主服务器,即可自动监视 主服务器下的从服务器。无需配置监视 从服务器。
2、一个sentinel 可以监视多个 主服务,只需要配置多个 sentinel monitor master即可。
3、sentinel 可以组网,即可以同时使用多个sentinel。 以防止唯一的sentinel故障。
三、集群功能
具体来说,Redis集群会将整个数据库空间划分为16384个槽(slot)来实现数据分片(sharding),而集群中的各个主节点则会分别负责处理其中的一部分槽。当用户尝试将一个键存储到集群中时,客户端会先计算出键所属的槽,接着在记录集群节点槽分布的映射表中找出处理该槽的节点,最后再将键存储到相应的节点中
当用户想要向集群添加新节点时,只需要向Redis集群发送几条简单的命令,集群就会将相应的槽以及槽中存储的数据迁移至新节点。与此类似,当用户想要从集群中移除已存在的节点时,被移除的节点也会将自己负责处理的槽以及槽中数据转交给集群中的其他节点负责。最重要的是,无论是向集群添加新节点还是从集群中移除已有节点,整个重分片(reshard)过程都可以在线进行,Redis集群无须因此而停机。
Redis 渐进集群介绍的更多相关文章
- redis介绍 (8) window 下redis的集群(cluster命令)
前言: 前段时间我在centos上搭建过一次redis集群,那是借助ruby搭建,这次我介绍一种纯redis集群命令的方式去搭建[最后我会简单介绍ruby搭建]. redis集群搭建(三主三备): 准 ...
- 超详细,多图文介绍redis集群方式并搭建redis伪集群
超详细,多图文介绍redis集群方式并搭建redis伪集群 超多图文,对新手友好度极好.敲命令的过程中,难免会敲错,但为了截好一张合适的图,一旦出现一点问题,为了好的演示效果,就要从头开始敲.且看且珍 ...
- Redis分布式集群几点说道
原文地址:http://www.cnblogs.com/verrion/p/redis_structure_type_selection.html Redis分布式集群几点说道 Redis数据量日益 ...
- Redis集群(九):Redis Sharding集群Redis节点主从切换后客户端自动重新连接
上文介绍了Redis Sharding集群的使用,点击阅读 本文介绍当某个Redis节点的Master节点发生问题,发生主从切换时,Jedis怎样自动重连新的Master节点 一.步骤如下: 1.配 ...
- 170103、Redis官方集群方案 Redis Cluster
前面我们谈了Redis Sharding多服务器集群技术,Redis Sharding是客户端Sharding技术,对于服务端来说,各个Redis服务器彼此是相互独立的,这对于服务端根据需要灵活部署R ...
- 【Redis】Redis分布式集群几点说道
Redis数据量日益增大,使用的公司越来越多,不仅用于做缓存,同时趋向于存储这一块,这样必促使集群的发展,各个公司也在收集适合自己的集群方案,目前行业用的比较多的是下面几种集群架构,大部分都是采用分片 ...
- Redis Cluster集群搭建与配置
Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...
- jedis处理redis cluster集群的密码问题
环境介绍:jedis:2.8.0 redis版本:3.2 首先说一下redis集群的方式,一种是cluster的 一种是sentinel的,cluster的是redis 3.0之后出来新的集群方式 本 ...
- 深入分析redis cluster 集群
深入分析redis cluster 集群安装配置详解 下面小编来为各位介绍一篇深入分析redis cluster 集群安装配置详解,如果你希望做数据库集群就可以来看看此文章的哦. http://rub ...
随机推荐
- 攻防世界-MISC:Training-Stegano-1
这是攻防世界高手进阶区的题目,题目如下: 点击下载附件一,得到一张bmp图片 尝试用stegslove打开,并没有得到什么有用的信息,用010editor打开,发现文件后面有一串字符串 尝试提交fla ...
- 【microPython与esp8266】之一——呼吸灯与PWM
呼吸灯与pwm pwm是什么? PWM的全称是脉冲宽度调制(Pulse-width modulation),是通过将有效的电信号分散成离散形式从而来降低电信号所传递的平均功率的一种方式: 简而言之,使 ...
- mybatis通用功能代码生成工具
mybatis操作数据库的过程中,如果只考虑单表操作,mapper和dao层基本80%的都是固定的,故而可以使用工具进行生成,文末提供自己编写的工具(基于mysql存储过程):作者其实就是使用(myb ...
- C#开发PACS医学影像三维重建(十三):基于人体CT值从皮肤渐变到骨骼的梯度透明思路
当我们将CT切片重建为三维体之后,通常会消除一些不必要的外部组织来观察内部病灶, 一般思路是根据人体常见CT值范围来使得部分组织透明来达到效果, 但这是非黑即白的,即,要么显示皮肤,要么显示神经,要么 ...
- .NET ORM 仓储层必备的功能介绍之 FreeSql Repository 实现篇
写在开头 2018年11月的某一天,头脑发热开启了 FreeSql 开源项目之旅,时间一晃已经四年多,当初从舒服区走向一个巨大的坑,回头一看后背一凉.四年时间从无到有,经历了数不清的日夜奋战(有人问我 ...
- go-micro集成RabbitMQ实战和原理
在go-micro中异步消息的收发是通过Broker这个组件来完成的,底层实现有RabbitMQ.Kafka.Redis等等很多种方式,这篇文章主要介绍go-micro使用RabbitMQ收发数据的方 ...
- muduo项目介绍
在上一个集群聊天服务器项目中,我使用了muduo作为网络库,然后主要实现了业务逻辑等,所以为了深入网络库的代码和实现,我跟着一位老师的代码去实现了muduo库的基本原理和作用,当然只是实现了主体的代码 ...
- 通过有序线性结构构造AVL树
通过有序线性结构构造AVL树 本博客旨在结局利用有序数组和有序链表构造平衡二叉树(下文使用AVL树代指)问题. 直接通过旋转来构造AVL树似乎是一个不错的选择,但是稍加分析就会发现,这样平白无故做了许 ...
- Centons7最小化安装报错:ping: baidu.com: Name or service not know
在这之前,centos7最小化安装默认是不能联网的,首先必须切换到root用户,再解决网络问题 一. 切换到root用户 二. 解决网络问题 一.切换到root用户 Linux下 ...
- django 备件管理系统
views 1 class limit: 2 3 def limit(self,res,obj): 4 limit = int(res.GET.get('limit',1)) 5 pagelimit ...