Redis架构模式有几种?适用哪些场景?

从适用场景角度划分,Redis架构模式可以分为五种:单节点、主从复制、哨兵、集群和Redis Proxy 模式。其中主从复制是哨兵和集群的base。

Redis部署可以参考之前写过的Redis7.X 安装系列教程:

《Redis7.x安装系列教程(一)单机部署》

《Redis7.x安装系列教程(二)主从部署&原理详解》

《Redis7.x安装系列教程(三)哨兵部署&原理详解》

《Redis7.x安装系列教程(四)集群部署&原理详解》

1、单节点

单节点是Redis 最基本的架构,运行一个单独的 Redis 实例,所有的读写操作都在这个实例上完成。

特点:

  • 简单易用: 适用于小规模场景,配置简单。
  • 无高可用性: 当节点宕机时,服务不可用。
  • 无法水平扩展:
    • 存储和处理能力有限,
    • 随着数据量的增加,单节点的性能会逐渐降低。

应用场景: 数据量小、读写压力较低的开发和测试环境。

2、主从复制(Master-Slave Replication)

主从复制,也称为读写分离模式,是一种典型的主从架构。一个主节点处理所有写请求,同步数据到多个从节点,从节点处理读请求。

特点:

  • 读写分离:
    • 主节点处理写操作,从节点处理读操作,
    • 减轻主节点压力,提升读性能。
  • 数据冗余:
    • 从节点同步主节点的数据,
    • 主节点出现故障时,数据不会丢失。
  • 手动故障转移:
    • 当主节点出现问题时,
    • 必须手动将一个从节点提升为主节点。

应用场景: 读操作较多的应用场景,如排行榜、社交平台的动态数据读取等。

3、哨兵(Sentinel)

哨兵,监控主节点和从节点的状态,自动检测并处理故障转移,解决主从复制架构中的高可用问题。

特点:

  • 自动故障转移:
    • 主节点宕机时,Sentinel自动将从节点提升为新的主节点,
    • 通知客户端更新连接信息。
  • 监控功能:
    • 持续监控主从节点的健康状态,
    • 确保节点的可用性。
  • 高可用性:
    • 保证 Redis 集群在主节点故障时仍然可用,
    • 无需人工干预。

应用场景: 高可用性要求较高的生产环境,能够应对主节点故障并自动恢复。

4、集群(Redis Cluster)

集群,允许数据自动分片存储在多个节点上,解决单节点存储限制和性能瓶颈的问题。

特点:

  • 水平扩展:
    • 支持将数据分片存储在多个节点上,
    • 可以根据需要增加节点,扩展存储容量和计算能力。
  • 高可用性:
    • 每个数据分片都有一个主节点和若干个从节点,
    • 当某个主节点故障时,集群会自动将从节点提升为主节点,继续提供服务。
  • 分布式存储:
    • 使用一致性哈希算法将数据均匀分布到多个节点上,
    • 客户端可以直接与各个节点交互。
  • 无中心架构:
    • 没有中央控制节点,所有节点之间是对等的,
    • 减少了单点故障的可能性。

应用场景: 需要高性能、海量数据存储和高可用性的大型互联网应用,如电商、社交网络、金融系统等。

5、Redis Proxy 模式

Redis Proxy 模式,是一种通过代理层管理多个Redis实例的方式,如 Twemproxy 或 Codis。客户端不直接连接 Redis 节点,通过代理服务器实现请求的路由、负载均衡等功能。

特点:

  • 透明访问:
    • 客户端只需要连接代理,
    • 代理负责将请求转发给合适的 Redis 实例,
    • 简化客户端的连接管理。
  • 负载均衡:
    • 通过代理可以实现 Redis 的请求分发,
    • 均衡多个 Redis 实例的负载。
  • 分片管理:
    • 代理层可以管理 Redis 集群中的数据分片,
    • 支持水平扩展。

应用场景: 需要在复杂场景下简化客户端逻辑和提供灵活路由的场景,如大型网站的缓存系统。

6、我的公众号

敬请关注我的公众号:大象只为你,持续更新技术知识…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/14509.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

准双向/弱上拉(标准8051输出模式)、仅为输入(高阻)、开漏输出、推挽输出、上拉电阻、下拉电阻都是什么?

准双向/弱上拉(标准8051输出模式): 弱上拉:即输出的1驱动能力是有限的 准双向:可以输入也可以输出 为什么是弱上拉呢? 当三极管断开的时候,“内部输入”处应该是高电平(前提的后端…

Linux高阶——1110—死锁问题原子访问线程控制与调度线程同步

目录 1、旋转锁 2、死锁问题 死锁问题举例: 1、双线程死锁 代码 成功截图 2、单线程死锁 死锁问题处理: 死锁问题预防: 有向图 3、原子访问 1、原子访问概念 2、原子访问可用函数 原代码 未加锁代码输出 修改后代码 修改后截…

python入门3

IDE的概念 IDE(Integrated Development Environment)又被称为集成开发环境。说白了,就是有一款图形化界面的软件,它集成了编辑代码,编译代码,分析代码,执行代码以及调试代码等功能。在我们Python开发中,最常…

Ollama—87.4k star 的开源大模型服务框架!!

这一年来,AI 发展的越来越快,大模型使用的门槛也越来越低,每个人都可以在自己的本地运行大模型。今天再给大家介绍一个最厉害的开源大模型服务框架——ollama。 项目介绍 Ollama 是一个开源的大语言模型(LLM)服务工具…

mysql中的EXISTS和NOT EXISTS使用详解

本文来编写一个实例说下mysql中的EXISTS和NOT EXISTS使用详解 文章目录 exists用法SQL中in, not in, exists, not exists的区别使用实例本文小结 exists用法 exists: 如果括号内子查询语句返回结果不为空,说明where条件成立,就会执行主SQL语句。如果括号…

海量数据去重的哈希与布尔过滤器

目录 散列表 hash与平衡二叉树比较: 散列表组成: hash函数 作用&#xff1a; 怎么选择hash&#xff1a; 选择标准: 常用hash: hash的操作: hash冲突 产生原因 如何描述冲突程度: 解决冲突: 在合理范围内:used < size: 不在合理范围内&#xff08;used > s…

快速掌握——python类 封装[私有属性方法]、继承【python进阶】(内附代码)

1.类的定义 与 实例化对象 在python中使用class关键字创建一个类。 举例子 class Stu(object):id 1001name 张三def __init__(self):passdef fun1(self):pass# 实例化对象 s1 Stu() s2 Stu() print(s1.name) print(s2.name) 第一个方法 __init__是一种特殊的方法&#x…

PO 证书链

提到服务器间证书交换会不会头大,这两天遇到一个B2B接口的通讯证书问题,借机涨姿势,分享之 通常服务器之间通讯证书使用有两种方式: 如果不是生产机,可以简单的使用自签名证书,自签名证书就是下面这两个信息相同,都是自己,工具这里就不介绍了,多的是。双方互换证书,你…

HarmonyOS App 购物助手工具的开发与设计

文章目录 摘要引言功能需求分析技术方案与设计架构设计技术选型 代码示例Demo数据抓取模块数据存储模块历史价格查询和数据可视化模块完整界面布局和调用示例代码详解 QA环节总结参考资料 摘要 随着促销活动的增多&#xff0c;用户面临真假折扣的困惑&#xff0c;特别是在一些…

MPTCP协议

介绍 多路径TCP或 MPTCP协议是标准的扩展传输控制协议并在中进行了描述 RFC 8684号文件它允许设备同时使用多个接口通过单个MPTCP连接发送和接收TCP数据包。MPTCP可以聚合多个接口的带宽&#xff0c;也可以选择延迟最低的接口。它还允许在一条路径断开时进行故障切换&#xff…

1. 初始认识 Spring Cloud

1. 初始认识 Spring Cloud 文章目录 1. 初始认识 Spring Cloud前言2. Spring Cloud 基本介绍3. 系统架构的演变过程3.1 单机架构3.2 动静分离架构&#xff1a;静态缓存 文件存储3.3 分布式架构&#xff1a;业务拆分 负载均衡3.4 微服务架构&#xff1a;使用 Spring Cloud 4. …

网络学习第四篇

引言&#xff1a; 我们在第三篇的时候出现了错误&#xff0c;我们要就行排错&#xff0c;那么我们要知道一下怎么配置静态路由实现ping通&#xff0c;这样子我们才知道下一跳到底是什么&#xff0c;为什么这样子做。 实验目的 理解和掌握静态路由的基本概念和配置方法。 实…

【rf】robotframework自动化测试环境搭建

robotframework自动化测试环境搭建 前言&#xff1a; 1、在2019年之前&#xff0c;robotframework-ride的版本一直是1.5.2.1&#xff0c;是2016年1月份的版本&#xff0c;只能安装在python2.7的环境上&#xff0c;导致如果想同时使用robotframework做测试且又需要python3环境…

opencv入门学习总结

opencv学习总结 不多bb&#xff0c;直接上代码&#xff01;&#xff01;&#xff01; 案例一&#xff1a; import cv2 # 返回当前安装的 OpenCV 库的版本信息 并且是字符串格式 print(cv2.getVersionString()) """ 作用&#xff1a;它可以读取不同格式的图像文…

《DiffusionDet: Diffusion Model for Object Detection》ICCV2023

摘要 本文提出了一种新的框架DiffusionDet&#xff0c;它将目标检测任务表述为从带噪声的边界框到目标边界框的去噪扩散过程&#xff08;如图一所示&#xff09;。在训练阶段&#xff0c;目标边界框逐渐扩散到随机分布&#xff0c;模型学习逆转这一加噪过程。在推理阶段&#…

加深深度学习矩阵计算理解--用人类直觉 走进线性代数(非应试)

文章目录 前言一、向量二、线性组合、空间与基三、矩阵和线性变换四、矩阵乘法与线性变化复合1、矩阵乘法代表线性变换的复合2、实例说明 五、三维空间的线性变换1、基本性质2、直觉理解3、矩阵表示 六、行列式一、行列式的定义2、行列式在空间中的抽象理解 七、逆矩阵 列空间秩…

AIGC学习笔记(5)——AI大模型开发工程师

文章目录 AI大模型开发工程师004 垂直领域的智能在线搜索平台1 智能在线搜索平台需求分析大模型不够“聪明”增强大模型的方式需求分析2 智能在线搜索平台方案设计方案设计技术选型大模型版本GLM-4大模型注册使用Google Cloud平台注册创建可编程的搜索引擎3 智能在线搜索平台代…

【C++滑动窗口】1234. 替换子串得到平衡字符串|1877

本文涉及的基础知识点 C算法&#xff1a;滑动窗口及双指针总结 LeetCode1234. 替换子串得到平衡字符串 有一个只含有 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符&#xff0c;且长度为 n 的字符串。 假如在该字符串中&#xff0c;这四个字符都恰好出现 n/4 次&#xff0c;那么它就…

源码分享-Springboot+Vue大学生社团活动平台附源码,sql文件,配套论文

源码获取: 复制链接到浏览器打开即可领取 夸克网盘领取链接&#xff1a;https://pan.quark.cn/s/187d2ca0e3ec 百度网盘领取链接&#xff1a;https://pan.baidu.com/s/1apbO6k1cEqFXV-USf0I2IA?pwdccaj 提取码: ccaj 1.1课题背景及意义 随着现代网络技术发展&#xff0…

南山前海13元一份的猪脚饭

​今天没有带饭&#xff0c;中午打算去中国国有资本资本风投大厦的工地餐点吃个打工餐。 ​快到工地餐点就看到不少工友已经开始津津有味吃饭了哈。其实树下也有很多小鸟在觅食&#xff0c;可能是找一些剩饭吃的样子&#xff0c;大部分是麻雀为主。​ ​肚子有些饿&#xff0c;…