免费公司网站建设/百度网址大全网站大全
Redis 单机模式
Redis 单机模式是指 Redis 数据库在单个服务器上以独立的、单一的进程运行的模式。在这种模式下,Redis 不涉及数据分片或集群配置,所有的数据和操作都在一个实例中进行。以下是关于 Redis 单机模式的详细介绍:
-
单一实例: 在 Redis 单机模式中,只有一个 Redis 实例在一个服务器上运行。这个实例负责处理所有的数据存储和操作请求。
-
内存数据库: Redis 单机模式仍然是一个基于内存的数据库,所有的数据都存储在内存中,因此读取操作非常快速。这使得 Redis 单机模式适用于需要高速读取的应用场景,如缓存系统。
-
单线程模型: Redis 单机模式采用单线程模型来处理客户端请求。这是因为大部分 Redis 的操作都是非阻塞的,且 Redis 的性能瓶颈通常在于 CPU 而不是线程的并发性。这种单线程模型简化了内部的数据结构和操作,提高了性能和稳定性。
-
持久化: Redis 单机模式支持数据持久化,即将数据保存到磁盘以便在重启后恢复。有两种主要的持久化方式:RDB(Redis Database Dump)和 AOF(Append-Only File)。RDB 将数据库的快照保存到磁盘,AOF 将写操作追加到文件中,用于数据恢复。
-
数据类型: Redis 单机模式支持多种数据类型,如字符串、哈希表、列表、集合、有序集合等。这些数据类型使得 Redis 能够用于多种用途,如缓存、计数器、排行榜、实时分析等。
-
发布订阅: Redis 单机模式支持发布订阅模式,其中一个客户端可以发布消息,而其他客户端可以订阅感兴趣的消息频道。这在构建实时消息传递系统时非常有用。
-
事务: Redis 单机模式支持事务,允许多个命令在一个原子操作中执行,要么全部提交,要么全部回滚。
-
应用场景: Redis 单机模式适用于小规模应用,或者对数据可用性要求不是特别高的场景。它可以用作缓存、计数器、实时分析、排行榜、任务队列等。
尽管 Redis 单机模式在简单性和易用性方面有优势,但是在面对高并发和大规模数据时,可能会出现性能和可用性的瓶颈。
Redis 主从模式
Redis 主从模式是一种分布式架构,用于提高 Redis 数据库的可用性、性能和数据备份能力。在主从模式中,有一个主节点(master)和一个或多个从节点(slaves)。主节点负责处理写操作和部分读操作,而从节点负责复制主节点的数据,并处理部分读操作。
以下是 Redis 主从模式的关键特点和工作原理:
-
数据复制: 主节点负责写操作和部分读操作,而从节点通过复制主节点的数据来实现数据备份和读取分担。从节点会周期性地从主节点获取数据快照(RDB)或增量日志(AOF)来保持数据的一致性。
-
读写分离: 主节点负责写操作,而从节点负责读操作,从而分担了主节点的负载。这提高了系统的整体性能和承载能力。
-
数据备份: 通过将数据复制到从节点,主从模式实现了数据的冗余备份。在主节点发生故障时,可以将其中一个从节点升级为新的主节点,从而保证了系统的可用性。
-
故障恢复: 当主节点发生故障时,可以通过升级一个从节点为新的主节点来实现快速的故障恢复。此过程称为故障切换(failover)。
-
数据分片: 通过使用多个从节点,主从模式还可以实现数据分片,从而提高了系统的扩展性和性能。
-
配置设置: 在主从模式中,从节点需要配置主节点的地址和端口,以便进行数据复制。主节点不会自动感知从节点的存在。
-
数据延迟: 由于从节点需要从主节点复制数据,可能会出现从节点数据相对于主节点稍有延迟的情况。
主从模式适用于需要提高 Redis 数据库的可用性和性能的场景,特别是在读多写少的应用中。然而,主从模式并不能提供高可用性的绝对保证,因为当主节点发生故障时,故障切换可能需要一些时间来完成。对于更高级别的高可用性和分布式需求,可以考虑使用 Redis 集群、哨兵模式或其他分布式数据库解决方案,也就是我们下面即将讲到的几种模式!
Redis 哨兵模式
Redis 哨兵模式(Redis Sentinel)是一种用于监控和管理 Redis 集群的解决方案,旨在提供高可用性和自动故障转移。在 Redis 哨兵模式中,一组 Redis 哨兵进程负责监控 Redis 主节点和从节点的状态,并在主节点发生故障时自动进行故障转移。
以下是 Redis 哨兵模式的关键特点和工作原理:
-
监控主从节点: Redis 哨兵进程会定期监控主节点和从节点的状态。它们通过发送心跳和检查 Redis 服务器的响应来确定节点的健康状态。
-
自动故障转移: 当 Redis 主节点发生故障时,哨兵会自动检测到,并协调将一个可用的从节点升级为新的主节点,以实现快速的故障转移。这样可以减少系统的停机时间。
-
配置管理: Redis 哨兵可以监控多个 Redis 主从节点,当节点的状态发生变化时,哨兵可以自动更新配置,确保客户端连接到正确的节点。
-
提供服务发现: 客户端可以连接到一个或多个 Redis 哨兵进程,而不需要直接连接到具体的 Redis 节点。哨兵可以为客户端提供当前可用的主节点和从节点信息。
-
多哨兵模式: 可以配置多个 Redis 哨兵来实现冗余和高可用性。这些哨兵之间相互协作,共同管理 Redis 集群。
-
投票决策: 在故障转移过程中,如果有多个哨兵认为某个从节点应该升级为新的主节点,它们会进行投票,并达成共识来进行决策。
Redis 哨兵模式适用于需要高可用性的 Redis 部署,特别是在读写分离和故障转移方面。它可以有效地监控和管理 Redis 集群,从而减少系统的停机时间,提高了应用的稳定性。
然而,需要注意的是,Redis 哨兵模式并不能提供绝对的高可用性,因为在故障转移期间可能会出现短暂的服务中断。对于更高级别的高可用性和性能需求,可以考虑使用 下面即将涉及到的Redis 集群。
Redis集群模式
Redis 集群模式是一种分布式架构,用于将多个 Redis 节点组合成一个逻辑集群,以提供高可用性、可扩展性和数据分布能力。在 Redis 集群中,数据会被分布到多个节点上,每个节点负责管理部分数据,同时还能自动进行故障转移和数据迁移。
以下是 Redis 集群模式的关键特点和工作原理:
-
数据分片: Redis 集群会将数据分成多个数据分片,每个数据分片会被存储在不同的节点上。这样可以有效地将数据分布到多个节点,提高了系统的扩展性和性能。
-
高可用性: Redis 集群在设计上具有高可用性,每个数据分片都有多个副本,确保了即使有节点发生故障,数据仍然可用。集群支持自动故障转移,可以将一个从节点升级为新的主节点,从而保证了系统的可用性。
-
分布式故障检测: Redis 集群采用多个节点进行故障检测,当某个节点故障时,其他节点可以检测到,并协调进行故障转移。
-
节点间通信: Redis 集群中的节点之间通过二进制协议进行通信,实现数据同步、故障检测和节点状态的维护。
-
自动数据迁移: 当增加或删除节点时,Redis 集群可以自动进行数据迁移,确保数据在不同节点之间平衡分布。
-
数据一致性: Redis 集群通过使用哈希槽来分布数据,确保相同键的数据都会被存储在同一个节点上,从而保证了数据的一致性。
-
读写分离: Redis 集群支持客户端进行读写分离,即读操作可以从多个节点中的任意一个节点读取数据,而写操作会被发送到主节点。
-
节点扩展: 当需要扩展 Redis 集群的容量时,可以通过添加新的节点来实现。Redis 集群会自动将部分数据迁移到新的节点上,从而实现容量的扩展。
Redis 集群模式适用于需要高可用性、高性能和分布式能力的场景,特别是在面对大规模数据和高并发请求时。它可以有效地管理和分布数据,提供了更高级别的可用性和可扩展性,但也需要一些额外的配置和管理工作,特别是集群化配置,是一个比较费力的地方,如何进行资源分配,甚至是扩容缩容,涉及到弹性架构,是一个比较高大上的技术。当然,也有docker部署方式,可以尝试一下,很好玩,很有趣!!!
四大模式区别
我们分别介绍了 Redis 的单机模式、主从模式,哨兵模式和集群模式。下面我会对这4种模式进行简要的比较,更好地理解它们之间的区别。
-
单机模式:
- 概述:Redis 单机模式是最简单的部署模式,只有一个 Redis 实例在单个服务器上运行。
- 优点:简单易用,适合小规模应用或开发环境。可以用作缓存、临时存储等。
- 缺点:不具备高可用性,如果单点故障,会导致数据不可用。不适用于高并发和大规模应用。
-
主从模式:
- 概述:Redis 主从模式通过主节点和从节点组成,从节点复制主节点的数据,用于提高可用性和读写分离。
- 优点:提供了一定程度的高可用性和读写分离。可以应对主节点故障,实现快速故障转移。
- 缺点:主节点故障时需要手动升级从节点为新的主节点,存在一定的停机时间。不适合大规模写入和数据分布场景。
-
哨兵模式:
- 概述:Redis 哨兵模式通过一组哨兵进程监控主从节点的状态,自动进行故障转移。
- 优点:提供了自动化的高可用性,能够自动检测主节点故障并实现快速故障转移。适用于需要高可用性的场景。
- 缺点:故障转移可能导致短暂的服务中断。配置和管理相对复杂。
-
集群模式:
- 概述:Redis 集群模式通过将多个节点组成集群,实现数据分片和高可用性。
- 优点:提供了高可用性、可扩展性和数据分布能力。自动数据分片和故障转移,适用于大规模和高并发场景。
- 缺点:配置和管理相对复杂,需要维护多个节点。
综合来说,不同的 Redis 部署模式适用于不同的需求和场景。如果你需要简单的数据存储或开发测试环境,可以考虑单机模式。如果需要一定的高可用性和读写分离,可以选择主从模式。如果需要更高级别的自动化高可用性和故障转移,可以使用哨兵模式。而如果需要高可用性、可扩展性和数据分布能力,可以选择集群模式。在选择模式时,要根据你的应用需求、可用性要求和性能要求来进行权衡和决策。
而且在以前的文章中,因为涉及到docker集群化部署,我专门出过一片详细的文章关于部署Redis集群,大家了可以有兴趣看看!
docker 部署Redis集群节点
根据我短暂的项目经验,目前尚且没有遇到大型的系统,所以也就没有使用到集群模式,就是单机版,实现token鉴权或者是用户个人数据存储,没有那个高级的需求,但是,没有不代表以后不需要,大家希望多多了解,多多实践,机会总是留给有准备的人!
各自应用场景
不同的 Redis 部署模式适用于不同的应用场景。以下是针对不同场景的建议:
- 单机模式:
- 适用场景:开发测试环境、小规模应用、临时数据存储、缓存数据、临时计数器等。
- 主从模式:
- 适用场景:读多写少的应用、提高读取性能、部分数据冗余备份。
- 哨兵模式:
- 适用场景:需要自动化高可用性和故障转移的场景、对数据可用性要求较高。
- 集群模式:
- 适用场景:需要高可用性、高性能和数据分布的大规模应用、大规模写入和读取场景。
综合来看,选择合适的 Redis 部署模式取决于你的应用需求和优先级。如果你需要简单的缓存或临时存储,可以选择单机模式。如果需要读写分离和一定程度的高可用性,可以选择主从模式。如果对高可用性要求较高且不想手动管理故障转移,可以选择哨兵模式。而如果需要高可用性、可扩展性和数据分布,可以选择集群模式。无论选择哪种模式,都需要根据实际需求进行权衡和决策。
立秋了,2023的夏天已经成为昨天,祝福我们吧,祝福我们彼此,天凉好个秋,万事胜意!加油!!!
相关文章:

Redis单机,主从,哨兵,集群四大模式
Redis 单机模式 Redis 单机模式是指 Redis 数据库在单个服务器上以独立的、单一的进程运行的模式。在这种模式下,Redis 不涉及数据分片或集群配置,所有的数据和操作都在一个实例中进行。以下是关于 Redis 单机模式的详细介绍: 单一实例&#…...

2023年8月份华为H12-811更新了
801、[单选题]178/832、在系统视图下键入什么命令可以切换到用户视图? A quit B souter C system-view D user-view 试题答案:A 试题解析:在系统视图下键入quit命令退出到用户视图。因此答案选A。 802、[单选题]“网络管理员在三层交换机上创建了V…...

[K8S:命令执行:权限异常:解决篇]:通过更新kubeconfig配置相关信息
文章目录 一:场景复现:1.1:关键信息:1.2:全异常日志输出: 二:解决流程:2.1:更新 kubeconfig:2.1.1:执行命令: 2.2:再次执行…...

帆软设计器报表加载不出折线图的原因
最近在用帆软设计器做可视化图表。偶有遇到因为数据集的字段类型导致加载不出折线,现记录如下。做报表的同行可以参考。 数据库使用了 Oracle 11g。数据集的 SQL 代码片是之前用在另一个单元格报表里面的。页面上有一个率是直接计算得出,我为了方便、就…...

[QCA6174]sdx12平台WiFi QCA6174在驱动加载的时候增加模块参数方法
需求描述 由于开发需要,有时候需要在驱动模块加载的时候增加一个参数,传递给到驱动使用 平台描述 Qualcomm SDX12+QCA6174平台 驱动信息 [ 112.281429] wlan: loading driver v4.0.11.213X [ 112.340262] msm_pcie_enable: PCIe: Assert the reset of endpoint of RC0. …...

Ajax-AJAX请求的不同发送方式
🥔:你一定能成为想要成为的人 发送AJAX请求不同方式 发送AJAX请求不同方式1、jQuery发送AJAX请求2、axios发送AJAX请求(重点)3、fetch发送AJAX请求 发送AJAX请求不同方式 1、jQuery发送AJAX请求 首先需要jquery的js文件…...

简易图书管理系统(面向对象思想)
目录 前言 1.整体思路 2.Book包 2.1Book类 2.2BookList类 3.user包 3.1User类 3.2NormalUser类 3.3AdminUser类 4.operation 4.1IOPeration接口 4.2ExitOperation类 4.3FindOperation类 4.4ShowOperation类 4.5AddOperation类 4.6DelOperation类 4.7BorrowOpera…...

C++ 函数模板与类模板
C最重要的特性之一就是代码重用,为了实现代码重用,代码必须具有通用性。通用代码应不受数据类型的影响,并且可以自动适应数据类型的变化。这种程序设计类型称为参数化程序设计。模板是C支持参数化程序设计的工具,通过它可以实现参…...

Tailwind CSS:简洁高效的工具,提升前端开发体验
112. Tailwind CSS:简洁高效的工具,提升前端开发体验 1. 什么是Tailwind CSS? Tailwind CSS是由Adam Wathan、Jonathan Reinink、David Hemphill和Steve Schoger等人共同创建的一种现代CSS框架。与传统的CSS框架不同,Tailwind CS…...

NR CSI(六) CSI reporting using PUCCH
之前NR CSI(二) the workflow of CSI report有对CSI report的相关流程进行介绍,而这篇主要看下CSI reporting over PUCCH的相关规定。 CSI report在PUCCH上传输的场景如上表红色字体,有三种场景,具体的对应的是Periodic 和Semi-Persistent CS…...

论文阅读---《Unsupervised Transformer-Based Anomaly Detection in ECG Signals》
题目:基于Transformer的无监督心电图(ECG)信号异常检测 摘要 异常检测是数据处理中的一个基本问题,它涉及到医疗感知数据中的不同问题。技术的进步使得收集大规模和高度变异的时间序列数据变得更加容易,然而ÿ…...

5G上行干扰规避的参数策略
LNR干扰避让 1. 干扰避让特性 D1/D2干扰避让:干扰与非干扰带宽独立测量,避免部分频带受干扰拉低整个带宽MCS,基于测量结果, 用户级自适应调度60/80/100M,躲避干扰频带。 窄带干扰避让:避免部分带宽的干扰对…...

CTF流量题解tcp1
用流量工具进行分析。发现消息长度有点异常。右键TCP跟踪。 ....mos.-mos-.-.mos-.-mos..-.mos..-mos-. 摩斯密码生成-网页工具 (adminun.com)...

Django快速入门
文章目录 一、安装1.创建虚拟环境(virtualenv和virtualenvwrapper)2. 安装django 二、改解释器三、创建一个Django项目四、项目目录项目同名文件夹/settings.py 五、测试服务器启动六、数据迁移七、创建应用八、基本视图1. 返回响应 response2. 渲染模板…...

Python “牵手” 淘宝商品详情数据获取方法,淘宝API申请指南
淘宝详情接口 API 是淘宝开放平台提供的一种 API 接口,它可以帮助开发者获取淘宝商品的详细信息,包括商品的标题、描述、图片等信息。在淘宝电商平台的开发中,淘宝详情接口 API 是非常常用的 API,因此本文将详细介绍淘宝详情接口 …...

OpenScene
paper:OpenScene: 3D Scene Understanding with Open Vocabularies code: https://github.com/pengsongyou/openscene 摘要:传统的3D场景理解方法依赖于带标签的3D数据集,在有监督的情况下为单个任务训练模型。我们提出了OpenScene,一种替代性的方法,模型预测CLIP特征空…...

HDFS中的Trash垃圾桶回收机制
Trash垃圾桶回收机制 文件系统垃圾桶背景功能概述Trash Checkpoint Trash功能开启关闭HDFS集群修改core-site.xml删除文件到trash删除文件跳过从trash中恢复文件清空trash 文件系统垃圾桶背景 回收站(垃圾桶)是windows操作系统里的一个系统文件夹&#…...

segment-anything使用说明
文章目录 一. segment-anything介绍二. 官网Demo使用说明三. 安装教程四. python调用生成掩码教程五. python调用SAM分割后转labelme数据集 一. segment-anything介绍 Segment Anything Model(SAM)根据点或框等输入提示生成高质量的对象遮罩,…...

在魔塔社区搭建通义千问-7B(Qwen-7B)流程
复制以下语句 python3 -m venv myvenvsource myvenv/bin/activatepip install modelscope pip install transformers_stream_generator pip install transformers pip install tiktoken pip install accelerate pip install bitsandbytestouch run.py vi run.py复制下面代码粘…...

Redis 加入服务列表自启动
1、下载reids windows版本,选择zip格式下载 2、解压zip,并进入路径; 3、命令提示符(cmd) 进入解压后的路径后,输入指令:redis-server --service-install redis.windows.conf; 4、如…...

MyCat管理及监控——zookeeper及MyCat-web安装
1.MyCat管理 2.MyCat-eye 3.zookeeper安装 第一步:解压 第二部: 切换目录,创建data文件夹 第三步:修改zookeeper配置文件 这样zookeeper安装及配置就完成了 4.MyCat-web安装 注意mycat-web要与zookeeper关联,…...

基于spring boot的餐饮管理系统java酒店饭店菜谱 jsp源代码mysql
本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 基于spring boot的餐饮管理系统j 系统1权限ÿ…...

JVM分析工具JProfiler介绍及安装
目录 一、什么是JProfiler? 二、JProfiler 功能结构 1、分析代理 2、记录数据 3、快照 三、安装 一、什么是JProfiler? JProfiler是一个专业的工具,用于分析运行中的JVM内部发生的事情。当您的生产系统出现问题时,您可以…...

Nginx使用多个.conf文件配置虚拟主机server
使用 Nginx 配置多个虚拟机 server 服务。通常做法可以直接在 nginx.conf 文件中添加即可,如下事例: # nginx.confworker_processes 1;events {worker_connections 1024; }http {include mime.types;default_type application/octet-stream…...

nginx编译以及通过自定义生成证书配置https
1. 环境准备 1.1 软件安装 nginx安装编译安装以及配置https,需要gcc-c pcre-devel openssl openssl-devel软件。因此需要先安装相关软件。 yum -y install gcc-c pcre-devel openssl openssl-devel wgetopenssl/openssl-devel:主要用于nginx编译的htt…...

OpenAI 已为 GPT-5 申请商标,GPT-4 发布不到半年,GPT-5 就要来了吗?
据美国专利商标局(USPTO)信息显示,OpenAI已经在7月18日申请注册了“GPT-5”商标。 在这份新商标申请中,OpenAI将“GPT-5”描述为一种“用于使用语言模型的可下载计算机软件”。 继GPT-4发布之后,它预计将成为OpenAI下一…...

【Linux】深入理解进程概念
个人主页:🍝在肯德基吃麻辣烫 我的gitee:Linux仓库 个人专栏:Linux专栏 分享一句喜欢的话:热烈的火焰,冰封在最沉默的火山深处 文章目录 前言浅谈进程概念1. 进程和操作系统的联系2.描述进程的对象——PCB …...

Java课题笔记~ AspectJ 的开发环境(掌握)
AspectJ 的开发环境(掌握) (1) maven 依赖 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></depe…...

机器学习参数调优
手动调参 分析影响模型的参数,设计步长进行交叉验证 我们以随机森林为例: 本文将使用sklearn自带的乳腺癌数据集,建立随机森林,并基于泛化误差(Genelization Error)与模型复杂度的关系来对模型进行调参&…...

[Java基础]面向对象-关键字分析:this,static,final,super
系列文章目录 【Java基础】Java总览_小王师傅66的博客-CSDN博客 [Java基础]基本概念(上)(标识符,关键字,基本数据类型)_小王师傅66的博客-CSDN博客 [Java基础]基本概念(下)运算符,表达式和语句,分支,循环,方法,变量的作用域,递归调用_小王师傅66的博客-CSDN博客 [Java基础]…...