Redis windows学习(二)——Redis的AOF模式和RDB模式
来源:互联网 发布:四川大学网络教育好吗 编辑:程序博客网 时间:2024/06/18 17:02
AOF和RDB是什么
Redis进行操作时,有两种方式将操作的结果保存下来。一种是将结果以快照的方式保存在二进制文件中(默认叫:dump.rdb* ),这就是RDB模式,另一种是将操作的命令追加到一个记录文件里(默认叫:appendonly.aof),然后通过重新执行这些命令来重建数据库。通常,不用修改这些,按默认的来就好了,但是,了解一下还是有好处的,说不定面试就问这个呢?
RDB模式
在redis里,默认使用RDB模式。因为RDB模式重建数据库比较快。
这里的 重建数据库 是指将数据从硬盘移到内存,并建立起数据库的过程。对于RDB模式来说,就是把 dump.rdb 文件加载到内存,并解压字符串,就建立起了数据库。而对于AOF模式来说,则是在启动Redis服务器的时候,运行appendonly.aof日志文件,在内存中重新建立数据库。从这里的描述就可以看出,AOF的重建过程是要比RDB慢的。
使用RDB模式的话,系统会将内存中数据库的快照每隔一段时间间隔更新到硬盘中(dump.rdb 文件里),这个更新的频率是可以指定的。在redis.conf中有三个配置用来指定内存数据更新到硬盘的频率:
//格式是:save <seconds> <changes>save 900 1 //如果仅有1-9次更改操作,那么要900s才写入硬盘一次save 300 10 //如果仅有10-9999次更改操作,那么要300s才写入硬盘一次save 60 10000 //如果超过10000次更改操作,那么60s才会写入硬盘一次
900s,也就是15分钟,300s,就是5分钟。这个时间挺长的,这正是RDB模式的缺点所在——如果服务器宕机的话,可能会造成最后几分钟,保存在内存中还来不及刷入硬盘的数据丢失。如果数据很重要那就惨了。
但是,如果数据不是那么重要,丢失几分钟数据也没什么关系,那么RDB模式是最好的选择。
AOF模式
使用AOF模式是将操作日志记在appendonly.aof 文件里,每次启动服务器就会运行appendonly.aof 里的命令重新建立数据库。因为要重新运行命令,所以appendonly.aof 是比较慢的。所以,默认AOF模式是关闭的。你可以在redis.conf 文件里配置,使用appendonly yes
打开AOF模式。
AOF模式有三种追加到appendonly.aof 的方式,用来指定什么时机可以将操作日志追加到appendonly.aof 文件里。它们分别是:
相较于RDB,AOF模式是比较安全的,即使服务器宕机,丢失的数据也最多是一秒两秒的。所以,如果数据对安全性要求很高,那么用AOF吧。
另外,你可以同时指定这两种方式,运行的时候,它们各自按自己的方式办事,不冲突。但是启动的时候,是按AOF模式启动的,也就是运行appendonly.aof 文件。
这些东西,都是从redis.conf搬出来的,推荐去看一下,文件也不长,一共才490行,可以体会一下原汁原味的知识。
- Redis windows学习(二)——Redis的AOF模式和RDB模式
- redis学习笔记——RDB和AOF持久化二
- Redis的持久化——RDB和AOF
- redis的持久化——RDB和AOF
- redis的持久化——RDB和AOF
- redis学习系列(九)--redis-AOF和RDB实践
- Redis——持久化机制(RDB和AOF)
- redis aof 和rdb
- Redis RDB和AOF
- redis学习笔记——RDB、AOF和复制时对过期键的处理
- redis学习-持久化存储rdb和aof的比较
- redis的持久化RDB和AOF
- Redis之RDB和AOF的异同
- Redis的RDB和AOF持久化
- Redis的持久化-RDB和AOF
- redis的RDB和AOF原理解析
- redis的持久化(RDB和AOF )的比较
- redis的持久化(RDB和AOF方式)
- 三维三维三维树状数组模板题 hdu 3584 Cube
- 双向链表(无注释...慎入)
- JS知识点搜集
- UIImageview的contentmode介绍
- 紫影龙的编程日记 —— 认识类和对象
- Redis windows学习(二)——Redis的AOF模式和RDB模式
- Javascript使用案例(1)
- 【小熊刷题】Best Time to Buy and Sell Stock I <leetcode 121 Java>
- 微信公众号一些事
- Linux 命令初探
- 我的血泪生活1
- 工作中的一些总结
- HDU 4292 Food 【网络流】
- swift - The command pattern