redis的简介架构

Redis(一):数据库架构发展及redis简介 Redis 是当前比较热门的 NOSQL 数据库系统之一,它是一个开源的使用 C 语言编写的键值对数据存储系统(区别于 MySQL 的二维表格的形式存储。NoSql数据库: Not Only Sql 泛指非关系型数据库,如:Redis / MongoDB/Hbase关系型数据库Redis 和 Memcache 类似,都是缓存在计算机内存中,不同的是,Memcache 只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以。 阅读详情

一,redis的简介

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。

redis支持各种不同方式的排序,与memcached一样,为了保证效率,数据都是缓存在内存中。

区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis支持主从同步。

数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。

由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

二,redis架构

在这里插入图片描述

三,redis数据持久化

什么是持久化
持久化就是将数据保存到可以永久保存的存储设备中,在这里的应用就是将内存的对象保存到数据库中,或者存储在磁盘文件中、 XML 数据文件中等等。
应用层:如果关闭( Close )你的应用然后重新启动则先前的数据依然存在。
系统层:如果关闭( Shutdown )你的系统(电脑)然后重新启动则先前的数据依然存在。
为什么要持久化
数据一般都是缓存在内存的,当重启或者关闭系统的时候,缓存在内存的数据就后消失了,为了避免这种事情发生,让数据可以长期的保存,就需要对redis做数据持久化。
怎样实现持久化
在这里插入图片描述

两种方式:RDB和AOF

RDB
这种数据的持久化就是在相隔一个固定的时间里将内存中的数据生成快照并写入磁盘,当然,实际的操作其实是fock一个子进程,写一个临时文件,写入成功后,会替换掉原来的文件,并用二进制压缩存储,RDB是redis默认的一种数据持久化存储方式,会在对应的目录下生成一个dump.rdb文件,重启之后数据就会恢复过来。

在这里插入图片描述

优点

1)只有一个文件dump.rdb,方便持久化;

2) 容灾性好,一个文件可以保存到安全的磁盘;

3) 性能最大化,fork子进程来完成写操作,让主进程继续处理命令,所以是IO最大化(使用单独子进程来进行持久化,主进程不会进行任何IO操作,保证了redis的高性能) ;

4)如果数据集偏大,RDB的启动效率会比AOF更高。

缺点

1)数据安全性低。(RDB是间隔一段时间进行持久化,如果持久化之间redis发生故障,会发生数据丢失。所以这种方式更适合数据要求不是特别严格的时候)

2)由于RDB是通过fork子进程来协助完成数据持久化工作的,因此,如果当数据集较大时,可能会导致整个服务器停止服务几百毫秒,甚至是1秒钟。

AOF
AOF的出现就会为了弥补RDB的不足,它会以日志的形式记录服务器的每一个写,删操作,查询操作会以文本的形式记录,将这些记录的信息追加到文件中,重启redis的时候就是根据日志的内容将写指令执行一次以达到恢复数据的效果。
在这里插入图片描述

优点

1)数据安全性更高,AOF持久化可以配置appendfsync属性,其中always,每进行一次命令操作就记录到AOF文件中一次。

2)通过append模式写文件,即使中途服务器宕机,可以通过redis-check-aof工具解决数据一致性问题。

3)AOF机制的rewrite模式。(AOF文件没被rewrite之前(文件过大时会对命令进行合并重写),可以删除其中的某些命令(比如误操作的flushall))

缺点

1)AOF文件比RDB文件大,且恢复速度慢;数据集大的时候,比rdb启动效率低。

2)根据同步策略的不同,AOF在运行效率上往往会慢于RDB。

Python爬虫:分布式爬虫架构与Scrapy-Redis实现 在面对大规模的数据爬取任务时,单台机器的爬虫往往效率低下且容易受到性能瓶颈的限制。分布式爬虫通过利用多台机器同时进行数据爬取,可以显著提高爬取效率和处理能力。本文将介绍分布式爬虫的架构原理,并详细讲解如何使用Scrapy-Redis实现分布式爬虫。Scrapy-Redis是一个基于Scrapy框架的扩展,它利用Redis作为分布式存储和通信工具,实现了分布式爬虫的功能。 阅读详情

相关推荐

1.全基因组重测序数据分析介绍

二代测序原理及fastq数据解读、全基因组重测序数据分析内容

weixin_53682198的博客 1880

redis架构

一.redis竞品对比 存储 数据结构 持久化 集群可用性 网络模型 线程模型 redis 支持value是string,list,hash,set,zset 是 主从,redis cluster无中心分布式集群 非阻塞IO 单线程 无锁 memcache 只支持string 否 需要自行开发 基于twemproxy做 主从集群 非阻

zhaozhenzuo的专栏 5859

Python+OpenCV实现游戏自动刷怪脚本(附完整代码)

本文详细介绍了如何使用Python和OpenCV开发游戏自动刷怪脚本,涵盖环境搭建、图像识别、行为决策引擎及反检测优化等关键技术。通过完整的代码示例,帮助开发者实现从简单脚本到智能自动化系统的升级,提升游戏效率。

weixin_29032489的博客 517

Redis的架构模式

单机版 特点:简单 问题: 1、内存容量有限 2、处理能力有限 3、无法高可用。 主从复制 Redis 的复制(replication)功能允许用户根据一个 Redis 服务器来创建任意多个该服务器的复制品,其中被复制的服务器为主服务器(master),而通过复制创建出来的服务器复制品则为从服务器(slave)。 只要主从服务器之间的网络连接正常,主从服务器两者会具有相同的数据,主服务器就会一直将发生在自己身上的数据更新同步 给从服务器,从而一直保证主从服务器的数据相同。 特点: 1、

hellozhxy的博客 1848

SECS/GEM协议中的关键指令详解:从S1F1到S9F9的完整指南

本文详细解析了SECS/GEM协议中从S1F1到S9F9的关键指令,涵盖设备状态管理、控制诊断、报警处理等核心功能。通过实际案例和调试技巧,帮助开发者掌握半导体制造设备通信标准,解决SECS/GEM协议在实际工程应用中的通讯难题,提升生产线智能化水平。

weixin_26899659的博客 397

Unity集成抖音小游戏:从IL2CPP配置到SDK接入全流程解析

本文详细解析了使用Unity开发抖音小游戏的完整流程。从关键的IL2CPP编译后端配置、PlayerSettings设置,到StarkSDK的接入与资源优化(如AutoStreaming),再到激励视频广告、录屏分享等核心功能的代码实现,提供了从环境准备到打包上传的全方位实战指南,帮助开发者高效完成技术适配。

weixin_27943395的博客 690

图解Redis

—1—什么是 Redis?Redis(REmote DIctionary Service)是一个开源的键值对数据库服务器。Redis 更准确的描述是一个数据结构服务器。Redis 的这种特殊性质让它在开发人员中很受欢迎。Redis不是通过迭代或者排序方式处理数据,而是一开始就按照数据结构方式组织。早期,它的使用很像 Memcached,但随着 Redis 的改进,它在许多其他用例中变得可行,包...

极客重生 586

(代码可运行)半导体器件和工艺模拟 使用Silvaco设计构建NMOS并提取各项工艺及器件参数

win10。

qq_20388971的博客 109

Redis四种架构模式

Redis 提供了单机、主从复制、哨兵和 Cluster 四种主要架构模式,适合不同的业务场景和需求。从简单的缓存到分布式存储,Redis 的灵活架构使其可以广泛应用于多种业务环境。选择合适的架构,既能提升 Redis 性能,又能保证高可用性。在实际项目中,结合业务规模、数据量、并发量和运维能力,选用合理的架构可以显著优化 Redis 的性能和稳定性,为系统提供稳定可靠的数据支撑。

tatasix的博客 2011

基于simulink的电气弹簧ES稳压控制模型仿真

若要补偿母线电压的谐波,需控制ES上的谐波,即在单闭环母线电压有效值控制的基础上,增加谐波抑制环节来进行谐波控制,现有的各种检测和抑制谐波的方法有采用模拟滤波器、傅里叶分析进行谐波分析、基于瞬时无功功率理论的方法等。当关键负载ZC为电流源型非线性负载时,电路原理图如图7所示,由于电流源型非线性负载可以等效为谐波电流源,关键负载电流ic便会含有谐波分量,导致输电线电流is和母线电压VS同样会含有谐波分量,导致供电质量的严重下降,对用电设备的正常工作造成影响。分别为流过线路阻抗、非关键负载、关键负载的电流,

FPGA/MATLAB学习教程/源码/项目合作开发 1631

Amazon SES 移出沙盒完整指南 & 高通过率模板

AWS SES沙盒模式转正式模式申请指南 申请正式模式需通过AWS审核,常见被拒原因包括邮件用途不清晰、缺少退订机制或发送量不合理。人工申诉需登录AWS Support Center提交服务限额提升请求,填写详细的公司信息、邮件用途及合规措施。 高通过率申诉模板需包含: 公司信息:名称、网址及与AWS的合作情况。 邮件规范:明确类型(交易/营销)、退订链接及退信处理机制。 发送计划:合理预估发送量,确保合规。 关键点:真实信息、用途清晰、退订机制完善、发送量合理。首次被拒可修改后重新提交。

xianyinsuifeng的博客 328

redis 架构详解

客户端是用于与 Redis 服务器进行交互的工具。有多种类型的客户端,包括官方提供的 Redis - CLI(命令行客户端),它是一个简单的命令行工具,用户可以通过输入 Redis 命令来直接操作服务器。例如,在命令行中输入。这些客户端库使得在不同的编程语言环境中能够方便地与 Redis 服务器进行通信。除了命令行客户端,还有各种编程语言对应的客户端库,如 Python 的。Redis Server(服务器)Redis Client(客户端)就可以在服务器中存储一个键值对,则可以获取对应键的值。

qq_43071699的博客 1881

组合预测模型 | LSTM-XGBoost长短期记忆神经网络结合极限梯度提升树时间序列预测(Matlab程序)

组合预测模型 | LSTM-XGBoost长短期记忆神经网络结合极限梯度提升树时间序列预测(Matlab完整程序)

前程算法屋的博客 2179

Redis架构简介

2。

qinwenjng120的博客 554

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Redis三主三从架构简介

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。 一组Redis Cluster是由多个Redis实例组成,官方推荐使用6实例,其中3个为主节点,3个为从节点。一旦有主节点发生故障的时候,Redis Cluster可以选举出对应的从节点成为新的主节点,继续对外服务,从而保证服务的高可用性。 注意: 1

了解➔熟悉➔掌握➔精通 3589

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Redis架构设计简介

Redis主从复制 简介 单个Redis支持的读写能力还是有限的,此时我们可以使用多个redis来提高redis的并发处理能力,这些redis如何协同,就需要有一定的架构设计,这里我们首先从主从(Master/Slave)架构进行分析和实现. 基本架构 redis主从架构如图所示: 其中,master负责读写,并将数据同步到salve,从节点负责读操作.快速入门实践 基于redis,设计一主从架构,一个Master,两个Slave,其中Master负责Redis读写操作,并将数据同步到Slav.

gulanga5的博客 601

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

redis sentinel高可用架构调研简介

redis哨兵+主从 Sentinel介绍 Redis Sentinel 是社区版本推出的原生高可用解决方案,其部署架构主要包括两部分:Redis Sentinel 集群和 Redis 数据集群。 其中 Redis Sentinel 集群是由若干 Sentinel 节点组成的分布式集群,可以实现故障发现、故障自动转移、配置中心和客户端通知。Redis Sentinel 的节点数量要满足 2n+1(n>=1)的奇数个。 Sentinel领导者选举 原因:只有一个sentinel节点完成故障转移 选举:

blissnmx的博客 308

Redis、B/S架构简介及操作命令

RedisRedis数据库简介 1. redis是一个开源的用C语言编写的数据库,但并不像常规的关系型数据库那样把数据存储在表中,而是像 Java中的Map集合一样,存储的是一系列key=value键值对,redis属于NoSQL数据库(非关系型数据库) 2. redis的设计初衷并不是取代传统的关系型数据库,而是作为他们的补充,在某些情况下发挥其特长 3. redis数据库工作的时候会把所有的数据都读到内存中,磁盘上的数据文件只是用来持久化数据。这个特点使 得redis具有极快的存取速度,但可.

Mr_TXQ的博客 420

【源码分析】redis网络通讯并发架构简介

文章分成两部分,第一部分是对Redis所用的事件驱动模型的原理的讲解,第二部分采用跟踪关键代码的形式去探究客户端-服务端是怎么使用这个框架进行通讯的。

panxianzhan的博客 634

Redis简介、数据结构、高性能读写、持久化机制、分布式架构

Redis简介、数据结构、高性能读写、持久化机制、分布式架构

weixin_42267411的博客 1486

redis常用命令_从 redis 简介到Redis BAT面试集结,看阿里P7架构师如何从容应对

分享是奉献的果实。分享是快乐的前提。 分享是一种博爱的心境,学会分享,就学会了生活。 我是Coid也是Codi,欢迎各位关注我,技术宅男的快乐其实也很简单! redis 简介 简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以存写速度非常快, 因此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数...

weixin_39640911的博客 73

Redis主从复制架构简介、主从复制的应用场景

默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。

qq_40585384的博客 1128

06-Redis架构设计应用实践

包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~

2301_82101470的博客 933

10-Redis课上问题总结(2107)

(multi,exec,discard,watch,unwatch)基于Redis实现简易购物车业务(哪些数据要放到购物车,方案设计,基于Hash类型实现数据存储)在哨兵应用中,master宕机了,但是在主节点启动以后,需不需要重新配置(看主从是否已切换)Redis 客户端API(Jedis)的基本应用(对象的创建,对象的销毁,常用方法的应用)Redis 数据库常用数据类型的基本操作(string,hash,list,set,…(string,hash,list,set,…最好创建的连接能够重复使用)

2401_88031506的博客 754

Redis

Redis

koko创作 947

Redis破障之路(三)Redis单线程架构

首先要明白,Redis的单线程指的是执行命令时的单线程。Redis客户端与服务端的模型可以简化成下图,每次客户端调用都经历了发送命令、执行命令、返回结果三个过程。我们说的单线程就是在第二步执行命令,一条命令从从客户端达到服务端不会立刻被执行,而是会进入一个队列中等待,每次只会有一条指令被选中执行。发送命令、返回结果、命令排队这些就不是那么简单了,例如Redis使用了I/O多路复用技术来解决I/O的问题。

mifffy_java的博客 880
上一篇: 基于Saltstack的Zabbix部署
下一篇: 线性表的顺序存储
小杨118709
博客等级 码龄8年 141粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值