由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁 盘上,当redis重启后,可以从磁盘中恢复数据。

redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时 dump到磁盘上的RDB持久化),另外一种是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件)。

RDB:RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。 (推荐学习:Redis视频教程)

触发机制

手动触发分别对应save和bgsave命令

save命令:阻塞当前Redis服务器,知道RDB过程完成为止,对于内存比较大的实例会造成长时间阻塞,线上不建议使用。DB saved on disk

bgseve命令:Redis进程执行fork操作创建子进程,RDB持久化过程有子进程负责,完成后自动结束。阻塞只发生在fork阶段,一般时间很短。* Background saving started by pid 3151

* DB saved on disk

* RDB: 0 MB of memory used by copy-on-write

* Background saving terminated with success

自动触发

以下场景下会触发

1)使用save相关配置,如“save m n”。表示m秒内数据集存在n次修改时,自动触发bgsave。

2)如果从节点执行全量复制操作,主节点自动执行bgsave生成RDB文件并发送给从节点。

3)执行debug reload命令重新加载Redis时,也会自动触发save操作。

4)默认情况下执行shutdown命令时,如果没有开启AOF持久化功能则自动执行bgsave。

AOF:以独立日志的方式记录每次写命令,重启时在重新执行AOF文件中的命令达到恢复数据的目的。主要作用:解决了数据持久化的实时性。

使用AOF

开启AOF功能需要设置配置:appendonly yes,默认不开启。文件名通过appendfilename配置设置,默认appendonly.aof。

1)所有的写入命令会追加到aof_buf(缓冲区)中。

2)AOF缓冲区根据对应的策略向硬盘做同步操作。

3)随着AOF文件越来越大,需要定期对AOF文件进行重写,达到压缩的目的。

4)当Redis服务器重启时,可以加载AOF文件进行数据恢复。

更多Redis相关技术文章,请访问Redis入门教程栏目进行学习!

php使用redis持久化,redis如何持久化相关推荐

  1. redis 数据结构 内存管理 持久化

    为什么80%的码农都做不了架构师?>>>    Redis 内存数据结构与编码 OBJECT encoding key.DEBUG OBJECT key 简单动态字符串(simple ...

  2. 【带你重拾Redis】Redis持久化

    Redis持久化 Redis有2种持久化策略: RDB和AOF. RDB(Redis Data Base) RDB是Redis默认的持久化策略,这种策略是把数据库的快照以二进制形式的副本保存在磁盘上. ...

  3. 【redis】redis持久化

    一.简介 Redis 的数据 全部存储 在 内存 中,如果 突然宕机,数据就会全部丢失,因此必须有一套机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的 持久化机制,它会将 ...

  4. redis的两种持久化方式详解

    一.背景 在实际开发中,为了保证数据的完整性,防止数据丢失,我们除了在原有的传统数据库保存数据的同时,最好是再用redis持久化再保存一次数据.如果仅仅是使用redis而不进行持久化配置的话,当red ...

  5. redis php 持久化,详解Redis RDB持久化、AOF持久化,

    详解Redis RDB持久化.AOF持久化, 1.持久化 1.1 持久化简介 持久化(Persistence),持久化是将程序数据在持久状态和瞬时状态间转换的机制,即把数据(如内存中的对象)保存到可永 ...

  6. Redis进阶-Redis持久化原理

    文章目录 Pre 快照原理 fork( 多进程) AOF 原理 AOF 重写 fsync 运维 Redis 4.0 混合持久化 Pre Redis-16Redis备份(持久化) Redis 的数据全部 ...

  7. php使用redis持久化,Redis持久化完整版本

    持久化的简介 RDB AOF RDB与AOF的区别 持久化应用场景 对于持久化这个功能点,其实很简单没有那么复杂 演示环境 centos7.0 redis4.0 redis存放目录:/usr/loca ...

  8. Redis的两种持久化机制RDB和AOF

    目录 RDB 原理 触发时机 AOF 原理 开启AOF aof日志文件说明 触发时机 aof的重写机制 redis4.0的混合持久化机制 总结 rdb持久化文件的名称:dump.rdb.存储在配置文件 ...

  9. redis多服务器共享_【数据库】Redis(二)持久化及事务

    Redis的数据持久化 Redis是基于内存对数据操作的数据库,计算机重启后,内存中的数据就会丢失,所以redis提供了持久化的功能,可以将redis操作的内存中数据持久化到本地的硬盘中.在redis ...

  10. Redis数据持久化之AOF持久化

    一.RDB持久化的缺点 创建RDB文件需要将服务器所有的数据库的数据都保存起来,这是一个非常耗费资源和时间的操作,所以服务器需要隔一段时间才能创建一个新的RDB文件,就也是说创建RDB文件的操作不能执 ...

最新文章

  1. GFStableList Adapter
  2. springboot 开发入门,及问题汇总
  3. 相关疑惑解决,java线程虚假唤醒等等问题
  4. 构建创业公司突击小团队
  5. 解读阿里巴巴集团的“大中台、小前台”组织战略
  6. 输入一行电报文字,将字母变成其下一字母(如’a’变成’b’……’z’变成’a’其它字符不变)
  7. 滴滴业务中台构建实践,首次曝光
  8. Android Studio User Manual
  9. python 爬取图片网站图片链接并下载收集
  10. 在OpenFOAM中标记某些区域自适应加密
  11. java成员变量默认是_在Java语言中,String类型的成员变量的默认初始值是( )
  12. Python 获取网站证书有效期
  13. 微信小程序手机号-springboot
  14. 计算机等级考试四级网络工程师必备考点总结
  15. 逆序对 矩阵 好事成双 金牌银牌铜牌 发工资
  16. 2018上半年软件设计师上午试题参考答案
  17. C语言中typedef的用法
  18. Maxcompute 小记1
  19. 如何在OS X照片中禁用iCloud照片同步
  20. 买一台 iPhone X,还是创建一家未来的独角兽?

热门文章

  1. java基础-----接口
  2. Jfreechart柱形图设置数值显示
  3. 搜索引擎的选择—百度还是谷歌?
  4. UiPickerView基本使用方法
  5. SQL Cookbook:一、检索记录(13)按模式搜索
  6. P4556 雨天的尾巴
  7. C语言-实现矩阵的转置-随机函数产生随机数并赋予数组中-190222
  8. HDU-1241 Oil Deposits (DFS)
  9. 【Apache POI】Java写入Excel文件
  10. 每周一个 Python 模块 | calendar