我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Redis(一):初识Redis内存数据库与持久化

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Redis(一):初识Redis内存数据库与持久化

什么是Redis内存数据库?


Redis,本质上上一个KEY-VALUE类型的内存数据库,整个数据库都加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因此它是纯内存操作,Redis的性能非常出色,每秒可以处理超过10万次读写操作。虽然是内存数据库,但是其数据可以持久化,而且支持丰富的数据类型。

Redis支持保存LIST列表和SET集合的数据结构,而且还支持对LIST进行各种操作,例如从LIST两端进行PUSH和POP数据,取LIST区间,排序等等。对SET支持各种集合的并集交集操作,单个value的最大限制是1GB。

Redis主要的缺点是受到物理内存限制,不能用作海量数据的高性能读写,而且它没有原生的可扩展机制,不具有扩展能力,要依赖客户端来实现分布式读写,因此其适合的应用场景主要局限在较小数据量的高性能操作和运算上。

最佳应用场景:适用于数据变化快且数据库大小可遇见(内存大小)的应用程序。

例如:股票软件、数据分析、实时数据收集、实时通讯。

Redis属于NoSQL范畴内,其含义为:Not only SQL,是不仅仅是SQL,是一项新的技术,随着WEB 2. 0的到来而得到广泛应用。理念是运用非关系的数据存储。

键值类型的数据库主要使用哈希表,这个表中有一个特定的键和一个指针指向特定数据。KEY/VALUE模型对于IT系统来说的优势在于简单、容易部署。主要特点是具有极高的并发读写性能。


什么是持久化?


Redis的所有数据都保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为半持久化);也可以把每一次数据变化都写入到磁盘(这称为全持久化)。所谓持久化就是将内存数据转换为硬盘数据,内存模型到存储模型的转换,或者说是瞬时状态与持久状态的相互转换。

Redis有两种持久化方式,默认是snapshot方式,实现方法是定时将内存的快照持久化到硬盘,这种方式的缺点是持久化之后如果出现crash则会丢失一段数据。另外一种是aof方式,在写入内存数据的同时将操作命令保存到日志文件中。


快照方式:

这种快照方式和虚拟机的快照一样,保存某一时刻的完整数据。Redis在使用这种方式做持久化的时候,定期(默认5分钟)会先写入到一个临时文件,写入完成后,会用这个文件去替换上次的旧的文件。这种方式的好处是,任何一次的快照文件都是完整可用的。但是缺点是,它每隔一段时间(默认最快1分钟,最慢15分钟)做一次,所以会存在一段时间的数据丢失。


AOF方式:

这种方式就是把对Redis内存数据的的写指令记录下来,这些指令会被记录在AOF文件的末尾,然后每秒做一次fsync操作(默认每秒一次),把指令在后台在执行一次执行过程其实就是修改磁盘上的数据库内容。所以如果出现故障也只丢失1秒的数据。

上面这种方式就很类似于传统数据库服务器的事务日志。

如果遇到在追加日志的时候遇到意外,可以使用redis-check-aof工具进行日志修复。

因为采用了追加方式,所以AOF会越来越大(这一点又和传统数据库不一样,传统数据库事务日志文件都比较小),因此redis有另外一个机制就是AOF文件重写,当AOF文件达到一个设定的阈值后,会自动启动AOF文件压缩,只保留可以恢复数据的最小指令集。

通过上面的对AOF的描述,可以看到AOF是一个面向过程的,而RDB是面向对象的。

AOF方式的有点:

  • 丢失数据最小

AOF方式的缺点:

  • 同等数据量,AOF文件比RDB文件体积大

  • AOF恢复速度比RDB方式慢


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Redis(一):初识Redis内存数据库与持久化

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

内存型数据库Redis持久化小结

因为Redis是内存型数据库,所以为了防止因为系统崩溃等原因导致数据丢失的问题,Redis提供了两种不同的持久化方法来将数据存储在硬盘里面,一种方法是快照(RDB),它可以将存在于某一个时刻的所有数据都写入到硬盘里面,另外一种方法是只追加文
2022-06-04

Springboot整合Redis与数据持久化

目录Springboot整合Redis使用json方式存储序列化方式存储数据mysql与Redis一致性解决同步问题Redis持久化机制全量同步与增量同步RDB与AOFRDBAOFSpringboot整合Redis有两种存储数据的方式:
2022-07-28

redis数据库持久化问题处理

redis数据库问题整理一、数据无法持久化1、背景介绍:经开发人员告知redis有3万多条数据无法写入内存,数据持久化停滞状态。2、排查过程:经过排查redis日志,发现报错信息如下,经过查询得知为此报错为7月10日导入大量数据后导致的,判断为内存突增导致写入
redis数据库持久化问题处理
2016-06-04

redis缓存如何与数据库保持一致

保持 redis 缓存与数据库数据一致性至关重要。以下方法可实现数据一致性:1. 写入时更新缓存(立即更新 redis 缓存);2. 写入时检查缓存(将更新存储在队列中,后台进程更新 redis 缓存);3. 读写分离(使用主从数据库复制,
redis缓存如何与数据库保持一致
2024-04-19

redis缓存如何与数据库保持一致状态

确保 redis 缓存与数据库一致的方法包括:1. 被动一致性定期同步;2. 增量同步;3. 主动一致性(订阅数据库事件);4. 使用分布式事务。选择方法取决于数据滞后容忍度、性能要求和数据库支持。Redis 缓存与数据库的一致性问题:如
redis缓存如何与数据库保持一致状态
2024-04-20

Redis做为缓存,MySQL如何与Redis保持数据一致性?

一般情况下Redis是用来实现应用和数据库之间的一个读操作的缓存层,主要目的是减少数据库的io,还可以提升数据库io性能
Redis数据库2024-11-30

Redis数据持久化:RDB与AOF详解及数据恢复应用

Redis的RDB和AOF持久化机制各有特点和用途。RDB适用于对性能要求高、数据恢复精度要求不高的场景,而AOF则适用于数据一致性要求较高的场景。
RedisAOFRDB2024-11-29

缓存数据丢了,原来是Redis持久化没玩明白

本文主要分析了Redis AOF、RDB以及混合持久化的内存数据持久化的机制原理,同时分析了两种持久化方式的优点以及缺点。我想只有理解了中间件的特性机制原理,知道了特性的长处以及不足我们才能设计适合我们平台的缓存数据持久化策略,从而提升平台

Spring+Redis集成怎么实现关系型数据库持久化

这篇文章主要讲解了“Spring+Redis集成怎么实现关系型数据库持久化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring+Redis集成怎么实现关系型数据库持久化”吧!Redis
2023-06-03

一文讲透数据库与 Redis 缓存一致性问题

所谓缓存,实际上就是用空间换时间,准确地说是用更高速的空间来换时间,从而整体上提升读的性能。

编程热搜

目录