Redis的AOF功能
来源:互联网 发布:淘宝卖男童还好做吗 编辑:程序博客网 时间:2024/06/05 05:55
引言: Redis是基于内存的数据库,同时也提供了若干持久化的方案,允许用户把内存中的数据,写入本地文件系统,以备下次重启或者当机之后继续使用。本文将描述如何基于Redis来设置AOF功能
什么是Redis的AOF?
AOF是AppendOnly File的缩写,是Redis系统提供了一种记录Redis操作的持久化方案,在AOF生成的文件中,将忠实记录发生在Redis的操作,从而达到在Redis服务器重启或者当机之后,继续恢复之前数据状态的机制。
以下我们来简要看看如何在Redis中使用AOF,并验证整个过程:
A. Redis中主要的AOF设置
appendonly yes ---- 打开aof设置,同时将快照功能置于低优先级的位置
appendfsync no
当设置appendfsync为no的时候,Redis不会主动调用fsync去将AOF日志内容同步到磁盘,所以这一切就完全依赖于操作系统的调试了。对大多数Linux操作系统,是每30秒进行一次fsync,将缓冲区中的数据写到磁盘上。
appendfsync everysec
当设置appendfsync为everysec的时候,Redis会默认每隔一秒进行一次fsync调用,将缓冲区中的数据写到磁盘。但是当这一次的fsync调用时长超过1秒时。Redis会采取延迟fsync的策略,再等一秒钟。也就是在两秒后再进行fsync,这一次的fsync就不管会执行多 长时间都会进行。这时候由于在fsync时文件描述符会被阻塞,所以当前的写操作就会阻塞。
结论就是,在绝大多数情况下,Redis会每隔一秒进行一 次fsync。在最坏的情况下,两秒钟会进行一次fsync操作。这一操作在大多数数据库系统中被称为group commit,就是组合多次写操作的数据,一次性将日志写到磁盘。
appendfsync always
置appendfsync为always时,每一次写操作都会调用一次fsync,这时数据是最安全的,当然,由于每次都会执行fsync,
所以其性能也会受到影响。
B. 启动redis-server
C. 打开redis-cli,操作数据
D. 查看aof文件
从上面的图示中,可以发现,在AOF的文件中,它忠实记录了发生在Redis上的操作,从而达到了还原数据的目的。当然,这个方式并不是一种效率很高的方式。主要的问题在于,有可能对于部分数据,进行了大量的操作。在这种情况下就必须产生大量的冗余操作记录。
- Redis的AOF功能
- Redis的AOF功能
- Redis的AOF功能
- Redis的AOF功能
- Redis的AOF功能
- Redis的AOF功能
- Redis的AOF功能
- Redis的AOF功能
- 【Redis】redis的AOF
- REDIS AOF的实现
- REDIS的AOF实现
- Redis的持久化-AOF
- Redis的持久化-AOF
- Redis的快照与AOF
- Redis的快照与AOF
- Redis的持久化-AOF
- Redis的AOF持久化
- Redis的快照与AOF
- Java内存管理机制详解
- 归并排序
- Ubuntu快捷操作
- 操作系统考试大纲
- 《30天自制操作系统》跳出工具限制! 之 img硬盘映像制作
- Redis的AOF功能
- 【centos】 error: command 'gcc' failed with exit status
- IMWeb提升营Day4 | 训练题22:从上往下打印二叉树
- Linux设备驱动之LCD显示摄像图像之一框架与准备工作
- 2017计蒜之道初赛第四场-商汤科技的安全令牌
- IDEA搭建Spring项目
- 在查找有序排序的时候,无意看到
- Linux设备驱动之LCD显示摄像图像之二编写V4l2程序
- 关于极限小数据!!!