博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis持久化方法
阅读量:4099 次
发布时间:2019-05-25

本文共 758 字,大约阅读时间需要 2 分钟。

持久化即将数据存储在硬盘中,Redis为我们提供了两种持久化选项:一种叫快照(snapshoting),另一种叫只追加文件(append-only file,AOF)。

快照(snapshoting)

快照就是将某个时刻的数据持久化到硬盘。如果系统崩了,那么用户只是丢失最近一次生成快照之后更改的数据,之前的数据还是存在的。

创建快照的几种方法:

  1. 客户端向Redis发送BGSAVE命令创建快照。
  2. 客户端向Redis发送SAVE命令创建快照。
  3. 设置save配置选项,可以自动触发BGSAVE命令,触发一次写一次快照。
  4. 当一个Redis服务器与另一个Redis服务器互联时,并且向对方发送SYNC命令,如果主服务器没有执行BGSAVE或者没有刚执行BGSAVE,那么就会执行BGSAVE并创建一个快照。

AOF

AOF就是在执行写命令的时候,被执行的写命令也会被复制到硬盘里。通过名字append就会知道,这要写也是写在文件的末尾,以此来记录数据的变化。AOF持久化可以通过配置append-only yes选项打开,配置appendfsync可以确定同步频率。

appendfsync选项

  • always,每个Redis命令都执行,也就是都要同步到硬盘,很显然这样搞得Redis速度也够呛,但是这种情况系统崩了的话,丢失的数据也最少。
  • everysec,看名字就知道是每秒钟,稍稍比alway写的频率低了一些。这种方法基本权衡了安全和性能,写的速度也没那么快了,但也不至于像no那样丢失的命令那么多。
  • no,这个就完全取决于操作系统了,OS说啥时候同步就啥时候同步。这个方法基本就不推荐使用了,因为刚才也说了,如果系统出点啥问题,这个选项丢失数据最多

参考资料

《》, siah L. Carlson, Manning

转载地址:http://cihii.baihongyu.com/

你可能感兴趣的文章
c++写时拷贝1
查看>>
C++ 写时拷贝 2
查看>>
Linux网络编程---I/O复用模型之poll
查看>>
Java NIO详解
查看>>
单列模式-编写类ConfigManager读取属性文件
查看>>
java中float和double的区别
查看>>
Statement与PreparedStatement区别
查看>>
Tomcat配置数据源步骤以及使用JNDI
查看>>
before start of result set 是什么错误
查看>>
(正则表达式)表单验证
查看>>
在JS中 onclick="save();return false;"return false是
查看>>
JSTL 常用标签总结
查看>>
内容里面带标签,在HTML显示问题,JSTL
查看>>
VS编译器运行后闪退,处理方法
查看>>
用div+css做下拉菜单,当鼠标移向2级菜单时,为什么1级菜单的a:hover背景色就不管用了?
查看>>
idea 有时提示找不到类或者符号
查看>>
JS遍历的多种方式
查看>>
ng-class的几种用法
查看>>
node入门demo-Ajax让前端angularjs/jquery与后台node.js交互,技术支持:mysql+html+angularjs/jquery
查看>>
神经网络--单层感知器
查看>>