Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Redis的三种模式:主从、哨兵、集群

Redis的三种模式:主从、哨兵、集群

作者头像
程序大视界
修改于 2020-08-01 05:23:16
修改于 2020-08-01 05:23:16
1.7K0
举报
文章被收录于专栏:程序大视界程序大视界

前言

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。普遍用于目前主流的分布式架构系统中。

Redis的多机数据库实现,主要分为以下三种:

  • Redis哨兵(Sentinel)
  • Redis复制(主从)
  • Redis集群

一、Redis的主从复制

通过执行slaveof命令或设置slaveof选项,让一个服务器去复制另一个服务器的数据。被复制的服务器称为:Master主服务;对主服务器进行复制的服务器称为:Slave从服务器。主数据库可以进行读写操作,当写操作导致数据变化时会自动将数据同步给从数据库。而从数据库一般是只读的,并接受主数据库同步过来的数据。一个主数据库可以拥有多个从数据库,而一个从数据库只能拥有一个主数据库。

主从复制问题:当master down,需要手动将一台slave使用slaveof no one提升为master要实现自动,就需要redis哨兵。

实现原理步骤:

  1. 从服务器向主服务器发送SYNC命令
  2. 主服务器收到SYNC命令后,执行BGSAVE命令,在后台生成RDB文件,使用缓冲区记录从现在开始执行的所有的写命令。
  3. 当主服务器的BGSAVE命令执行完毕后,主服务器后将BGSAVE命令生成的RDB文件发送给从服务器,从服务器接收并载入这个RDB文件,将自己的数据库状态更新至主服务器执行BGSAVE命令时的数据库状态。
  4. 主服务器将记录在缓冲区里面的所有写命令发送给从服务器,从服务器执行这些写命令,将自己的数据库状态更新至主服务器数据库当前所处的状态。

二、Redis的哨兵(Sentinel)

为了解决Redis的主从复制的不支持高可用性能,Redis实现了Sentinel哨兵机制解决方案。由一个或多个Sentinel去监听任意多个主服务以及主服务器下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线的主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已经下线的从服务器,并且Sentinel可以互相监视。

当有多个Sentinel,在进行监视和转移主从服务器时,Sentinel之间会自己首先进行选举,选出Sentinel的leader来进行执行任务。

三、Redis集群

集群是Redis提供的分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故障转移功能。一个Redis集群通常由多个节点组成;最初,每个节点都是独立的,需要将独立的节点连接起来才能形成可工作的集群。

Cluster Nodes命令和Cluster Meet命令,添加和连接节点形成集群。

Redis中的集群分为主节点和从节点。其中主节点用于处理槽;而从节点用于复制某个主节点,并在被复制的主节点下线时,代替下线的主节点继续处理命令请求。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序大视界 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Redis三种集群模式详解
redis 的复制分为两部分操作 同步(SYNC)和 命令传播(command propagate)
用户7353950
2022/05/11
6.5K0
Redis三种集群模式详解
谈谈Redis的几种经典集群模式
Redis集群是一种通过将多个Redis节点连接在一起以实现高可用性、数据分片和负载均衡的技术。它允许Redis在不同节点上同时提供服务,提高整体性能和可靠性。在Redis中提供集群方案总共有三种:主从复制、哨兵模式、Redis分片集群。这些都是目前主流经典的集群模式,redis做集群的好处:
一个风轻云淡
2023/11/27
1.2K0
Redis学习 - 复制以及三种部署模式
单机的redis通常情况是无法满足项目需求的,一般都建议使用集群部署的方式进行数据的多机备份和部署,这样既可以保证数据安全,同时在redis宕机的时候,复制也可以对于数据进行快速的修复。
阿东
2021/08/16
1K0
Redis学习 - 复制以及三种部署模式
redis主从|哨兵|集群模式
可以用info replication查看主从情况  例子:  1主2从  1哨兵,可以用命令起也可以用配置文件里  可以使用双哨兵,更安全,  redis-server --port 6379  redis-server --port 6380 --slaveof 192.168.0.167 6379  redis-server --port 6381 --slaveof 192.168.0.167 6379 redis-sentinel sentinel.conf  哨兵配置文件      sentinel.conf          sentinel monitor mymaster 192.168.0.167 6379 1  其中mymaster表示要监控的主数据库的名字,可以自己定义一个。这个名字必须仅由大小写字母、数字和“.-_”这 3 个字符组成。后两个参数表示主数据库的地址和端口号,这里我们要监控的是主数据库6379。 注意:     1、使用时不能用127.0.0.1,需要用真实IP,不然java程序通过哨兵会连到java程序所在的机器(127.0.0.1 )     2、配置哨兵监控一个系统时,只需要配置其监控主数据库即可,哨兵会自动发现所有复制该主数据库的从数据库 这样哨兵就能监控主6379和从6380、6381,一旦6379挂掉,哨兵就会在2个从中选择一个作为主,根据优先级选,如果一样就选个id小的,当6379再起来就作为从存在。 主从切换过程: (1)      slave leader升级为master  (2)      其他slave修改为新master的slave  (3)      客户端修改连接  (4)      老的master如果重启成功,变为新master的slave 哨兵监控1主2从,停掉主,哨兵会选出1个从作为主,变成1主1从。然而当我把原来的主再起来,它不会作为从,只是个独立的节点。 如果在新的主刚被选出来时,我把原来的主起来,它就能成为新主的从节点。  如果在新的主选出来过一会再起原来的主,就不能成为新主的从节点  或者在老的主起来后,重启哨兵也能把它变成从,哨兵配置文件里有,哨兵会执行“+convert-to-slave” 这很奇怪,我也没弄明白是怎么回事。
yaphetsfang
2020/07/30
7120
redis主从|哨兵|集群模式
一文搞懂 Redis 的三种集群方案
在开发测试环境中,我们一般搭建Redis的单实例来应对开发测试需求,但是在生产环境,如果对可用性、可靠性要求较高,则需要引入Redis的集群方案。虽然现在各大云平台有提供缓存服务可以直接使用,但了解一下其背后的实现与原理总还是有些必要(比如面试), 本文就一起来学习一下Redis的几种集群方案。
iMike
2020/11/24
11.1K0
一文搞懂 Redis 的三种集群方案
redis如何实现高可用【主从复制、哨兵机制】
保证redis高可用机制需要redis主从复制、redis持久化机制、哨兵机制、keepalived等的支持。
Java架构师必看
2021/05/14
6710
redis如何实现高可用【主从复制、哨兵机制】
Redis系列:Redis主从、哨兵、集群介绍
主从复制模式就是,部署多台 Redis 节点,其中只有一台节点是主节点(Master),其他的节点都是从节点(Slave),也叫备份节点(Replica)。只有 Master 节点提供数据的事务性操作(增删改),Slave 节点只提供读操作。所有 Slave 节点的数据都是从 Master 节点同步过来的
栗筝i
2022/12/01
5K0
Redis系列:Redis主从、哨兵、集群介绍
redis一主一从哨兵模式_kafka主从复制
Redis是内存数据库,如果不见内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化功能
全栈程序员站长
2022/09/21
6080
redis一主一从哨兵模式_kafka主从复制
Redis源码阅读(五)主从复制与哨兵机制
Redis 单节点存在单点故障问题,为了解决单点问题,一般都需要对 Redis 配置从节点,然后使用哨兵来监听主节点的存活状态,如果主节点挂掉,从节点能继续提供缓存功能。
星沉
2022/01/28
6380
Redis 主从复制、哨兵模式、集群
持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。
杰哥的IT之旅
2021/07/13
5410
Redis 主从复制、哨兵模式、集群
redis集群的三种模式
为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由Master来完成
summerking
2022/10/27
5240
Redis集群模式
* 一个master可以拥有多个slave,但是一个slave只能对应一个master
俊才
2022/03/07
6411
Redis集群模式
Redis 主从复制与哨兵
Redis 可以使用从属服务器来实现读写分离提高吞吐量或在主服务器故障时接替主服务器以提高可用性。
星哥玩云
2022/08/18
1800
redis主从复制和集群的区别_redis主从复制和redis集群的区别
1、redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。
全栈程序员站长
2022/09/22
1.1K0
redis主从复制和集群的区别_redis主从复制和redis集群的区别
Redis 6 新手入门基础篇
redis是基于内存的,如果不想办法将数据保存在硬盘上,一旦redis重启(退出/故障),内存的数据将会全部丢失。
猫头虎
2024/04/08
1680
Redis 6 新手入门基础篇
redis学习(二十二)
通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据。 但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失。
崔笑颜
2020/09/27
4090
Redis原理—3.复制、哨兵和集群
命令传播操作用于在主服务器的数据库状态被修改,导致主从服务器的数据库状态出现不一致时,让主从服务器的数据库重新回到一致状态。
东阳马生架构
2025/02/24
2050
Redis的三种集群方式
redis有三种集群方式:主从复制,哨兵模式(Sentinel)和集群(Redis Cluster)。
王先森sec
2023/04/24
4.6K0
Redis的三种集群方式
Redis技术知识总结之五——Redis集群模式
Redis 集群模式有三种:主从模式(Redis 2.8 版本之前)、哨兵模式(Redis 3.0 之前)、集群模式(Redis 3.0 之后)。
剑影啸清寒
2020/07/09
6880
【架构师修炼之路】Redis 哨兵机制 ( Sentinel )
哨兵(Sentinel)主要是为了解决在主从复制架构中出现宕机的情况,主要分为两种情况:
一个会写诗的程序员
2019/11/12
1.1K0
相关推荐
Redis三种集群模式详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档