五. Redis持久化
Redis是一个支持可持久化的内存数据库,也就是说Redis可以将数据保存到硬盘当中。
目前Redis支持两种持久化方式:
1. snapshotting 快照方式(默认方式)。
2. append-only file (缩写AOF)的方式。
区别:快照方式是将数据存到文件里面,AOF是将 INSERT,UPDATE,DELETE操作存到文件里面。
快照持久化
快照持久化是redis默认的持久化方式。这种方式是将内存中数据以快照的方式写入二进制文件中,默认的文件名为dump.rdb。redis提供了快照持久化的设置方式。
打开 redis.conf 文件:
save 900 1 表示900秒内如果超过1个key被修改,则发起快照保存
save 300 10 表示300秒内如果超过10个key被修改,则发起快照保存
save 60 10000 表示60秒内如果超过10000 个key被修改,则发起快照保存
弊端: 快照方式是在一定间隔时间做一次,所以如果Redis意外挂掉的话,就会丢失最后一次快照后的所有修改。
AOF持久化
AOF比快照方式有更好的持久化性,是由于在使用AOF时,redis会将每一个收到写命令都通过write函数追加到文件中,当redis重启时会通过重新执行文件中保存的写命令来重建整个数据库内容。
当然由于os会在内核中缓存write做的修改,所以可能不是立即写到磁盘上。这样aof方式的持久化仍然还是可能会丢失部分修改。
我们可以通过配置文件告诉redis我们想要通过fsync函数强制os写入到硬盘的时机。
步骤:
1. 修改 redis.conf 文件中 appendonly 项,设置为 appendonly no
2. 配置 appendfsync 项(三选一)
appendfsync always (收到命令就立即写入磁盘,最慢,但是保证最完全的持久化)
appendfsync everysec (每秒钟写入磁盘一次,在性能和持久化方面做了最好的折中)
appendfsync no (完全依赖os,性能最好,持久化方面没保证)
五. Redis持久化的更多相关文章
- Redis系列五 Redis持久化
Redis持久化 一.RDB(Redis DataBase) 1.介绍 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里. Red ...
- 五、Redis持久化配置
转载:[https://www.cnblogs.com/xingzc/p/5988080.html] Redis提供的持久化机制(RDB和AOF) Redis提供的持久化机制 Redis是一种面向“k ...
- Redis 入门到分布式 (五) Redis持久化的取舍和选择
个人博客网:https://wushaopei.github.io/ (你想要这里多有) Redis持久化的取舍和选择 持久化的作用 RDB AOF RDB和AOF的选择 一.持久化的作用 ...
- Redis(五)持久化
一.RDB RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发. 1.触发机制 (1)手动触发:save命令和bgsave命令 save命令:阻塞当前Re ...
- 解密Redis持久化
原文 http://blog.nosqlfan.com/html/3813.html 本文内容来源于Redis作者博文,Redis作者说,他看到的所有针对Redis的讨论中,对Redis持久化的误解是 ...
- 深度剖析Redis持久化
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt118 Redis是一种面向"key-value"类型数据 ...
- Redis学习——Redis持久化之AOF备份方式保存数据
新技术的出现一定是在老技术的基础之上,并且完善了老技术的某一些不足的地方,新技术和老技术就如同JAVA中的继承关系.子类(新技术)比父类(老技术)更加的强大! 在前面介绍了Redis学习--Redis ...
- Redis学习——Redis持久化之RDB备份方式保存数据
从这一个介绍里面知道,redis比memcache作为缓存数据库强大的地方,一个是支持的数据类型比较多,另一个就是redis持久化功能. 下面就介绍Redis的持久化之RDB! 一:什么是redis的 ...
- Redis 持久化之RDB和AOP
Redis 持久化之RDB和AOP Redis 有两种持久化方案,RDB (Redis DataBase)和 AOP (Append Only File).如果你先快速了解和使用RDB和AOP,可以直 ...
随机推荐
- ubuntu16.04 Docker默认存储路径修改
Ubuntu 16.04 Docker默认存储路径修改
- tensorflow 1.0 学习:池化层(pooling)和全连接层(dense)
池化层定义在 tensorflow/python/layers/pooling.py. 有最大值池化和均值池化. 1.tf.layers.max_pooling2d max_pooling2d( in ...
- 细读 php json数据和JavaScript json数据
关于JSON的优点: 1.基于纯文本,跨平台传递极其简单: 2.Javascript原生支持,后台语言几乎全部支持: 3.轻量级数据格式,占用字符数量极少,特别适合互联网传递: 4.可读性较强 5.容 ...
- IdentityServer4(1)- 特性一览
本地应用只本地客户端应用,例如QQ.微信 IdentityServer4是ASP.NET Core 2的OpenID Connect和OAuth 2.0框架.它可以在您的应用程序中提供以下功能: 它使 ...
- form详解
form ** form常用属性 action 指定请求的地址 method 请求方式,如果是post形式发出的,表单的输入值就会放在请求体中,并且会进行编码处理,编码的方式在请求头中的Content ...
- Nginx编译安装lua-nginx-module
lua-nginx-module 模块可以将Lua的强大功能嵌入NGINX服务器. 下载Nginx源码 如果已安装Nginx,需要查看当前安装版本的编译参数: $ /usr/local/nginx/s ...
- leetcode — search-a-2d-matrix
/** * Source : https://oj.leetcode.com/problems/search-a-2d-matrix/ * * * Write an efficient algorit ...
- 菜鸟系列docker——docker镜像上(3)
1. 镜像image 镜像和容器的关系就和安装包和程序的关系一样,有了镜像才可以启动容器,容器是镜像的一个运行实例. 1.1 镜像的结构 通过第二节仓库,可能很多看官已经查看到镜像是分层的,接下来将对 ...
- 使用Topshelf开发Windows服务、log4net记录日志
开发windows服务,除了在vs里新建服务项目外(之前有写过具体开发方法,可点击查看),还可以使用Topshelf. 不过使用topshelf需要.netframework 4.5.2版本,在vs2 ...
- 推荐写作平台gitbook——让我们换一种形式写作
https://www.gitbook.com/ 我一直用这个平台进行写作.目前有两本电子书可以供大家阅读,分别如下 Office 365 开发入门指南 https://www.gitbook.com ...