让每一名学员高薪就业
返回列表 发新帖

聊一聊Redis持久化存储模式

[复制链接]

100

主题

396

帖子

2540

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2540

版主论坛荣誉内测

发表于 2018-6-6 18:10:22  | 显示全部楼层 | 阅读模式
本帖最后由 菜肉果蔬 于 2018-6-6 18:19 编辑

一:Redis认识


Redis ,在Redis的官网你可以看到”Redis is an open source,BSD licensed,advanced key-value cache and store”,从官网可以看出,Redis它是一种key-value,也就是键-值 形式来组成的 键值系统,可以用作cache缓存和store存储数据,Redis 提供了对字符串,列表,哈希,集合,和有序集合的支持;  而在项目开发中,多数情况使用它作为一个缓存系统;当然Redis除了作为一个缓存数据库以外,它还支持JMS规范,也就是消息队列那块知识点;


二:Redis的使用


如果我们要使用Redis的话,首先需要进行安装,这里我们对Redis的 安装和配置 就不做详细阐述,我们主要是针对Redis 它的持久化存储这块内容,进行说明和阐述;

Redis它作为一种key-value型的数据库,必然需要存储这块知识,而Redis的存储分成两块,一块是Cache-only ,一块是Persistence
Cache-only: Redis只是做缓存服务,不持久化数据到磁盘,这样的话,数据在服务器停止运行那块,就消失了,这种模式下面,数据也不能进行恢复,这是一种安全性比较低的操作

Persistence: 就是Redis可以把内存中的数据持久化到磁盘上面,而且这种模式下,数据如果出现异常情况,是可以进行恢复的。这种模型下使用,我们的数据就相对而言比较安全;


所以我们对于Persistence这种存储,需要进行掌握。而这种Persistence重点在于如果系统或者服务出问题之后,应该怎么进行恢复; 针对数据恢复这块内容,Redis提供了两种方案,
一种是Redis DataBase(简称RDB) Append-only-file(简称AOF)
下面内容,就是对于这两种模型的介绍和理解;


三:Redis 持久化存储模型 RDB


RDB:它是某个时间点会把数据写到一个临时文件里面,当我们持久化保存完之后,redis会使用这个临时文件 去替换上传持久化文件,从而达到数据的恢复效果;

这里就所涉及到时间点:我们可以在redis.conf配置文件中进行配置;如下配置:

#save <seconds> <changes>
Save 900 1  表示15分钟,持久化一次
Save 300 10 表示 5分钟,更改10key的操作
Save 60 10000 表示 1分钟 更改10000key的操作


这种存储模式 也叫snapshot 快照,它的安全性比较差,它是正常时间进行数据备份以及主从数据同步的最佳方案,文件尺寸比较小,恢复数据的比较快,但是RDB模式 他是间隔一段时间执行持久化操作,如果在这段时间之内,redis出现了故障,我们的部分数据会出现丢失,这个方案更加适合 对应我们的数据要求不是很严格的情况下使用;

当然除了,这种模式以外,还有一种模型 就是AOF模式。


四.Redis持久化存储模式 AOF


AOF:单词意思是Append-only-file ,表示追加内容到日志文件的后面,这种模式是通过日志存储的模式,当需要恢复数据的时候,直接从日志文件里面恢复就可以, 它和mysql里面日志 类似的; 这种模式 相对而言,比较可靠,但是有个问题就是,文件会比如刚才使用RDB的方式文件要大;操作磁盘 就比较大,相对而言比较慢;

但是这种模型进行恢复,它的好处就是,数据丢失不会太大,我们可以设置追加的file的时间,如果你设置成1秒。那么我们最多可以损失1秒的数据。


这种模式在redis里面默认是关闭的,如果要使用,需要进行在redis.conf配置文件中进行开启,需要修改。

appendonly   yes

这个里面 我们需要需要了解AOF它同步数据的策略,redis提供了三种,这个也需要在配置文件进行配置,通过配置。

Appendfsyn everysec

① 一种策略是always 表示每一个记录会立即同步到文件,这样虽然不会操作数据丢失,但是磁盘的开销比较大;
② Everysec :每秒进行同步一次,性能和安全都还行,但是有个缺点就是,如果出现故障,会丢失1S的数据;
③ No: redis 不直接同步,交给操作系统处理,操作系统会检查buffer里面情况,如果达到一定量,会进行同步,这种情况,数据丢失 就会根据你的操作系统来决定;

好了,上面我们就对Redis的两种持久存储方案进行了认识,同学们一定要掌握好哟;

   感谢源码时代教学讲师提供此文章!
   本文为原创文章,转载请注明出处!


“尔康,你现在幸福吗?”“紫薇,你忘了?我一直就姓福啊。”
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Java培训  |   PHP培训  |   UI培训  |   H5培训  |   Python培训  |   大数据培训  |   如何报名  |   视频下载
快速回复 返回顶部 返回列表