Redis提供的持久化机制(RDB和AOF)
Redis提供的持久化机制 Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能、持久存储、适应高并发应用场景等优势。它虽然起步较晚,但发展却十分迅速。 近日,Redis的作者在博客中写到, 他看到的所有针对Redis的讨论中,对Redis持久化的误解是最大的 ,于是他写了一篇长文来对Redis的持久化进行了系统性的论述。 文章主要包含三个方面: Redis持久化是如何工作的、这一性能是否可靠以及和其它类型的数据库比较 。以下为文章内容: 一、Redis持久化是如何工作的? 什么是持久化?简单来讲就是将数据放到断电后数据不会丢失的设备中,也就是我们通常理解的硬盘上。 首先我们来看一下数据库在进行写操作时到底做了哪些事,主要有下面五个过程 : 客户端向服务端发送写操作(数据在客户端的内存中)。 数据库服务端接收到写请求的数据(数据在服务端的内存中)。 服务端调用write这个系统调用,将数据往磁盘上写(数据在系统内存的缓冲区中)。 操作系统将缓冲区中的数据转移到磁盘控制器上(数据在磁盘缓存中)。 磁盘控制器将数据写到磁盘的物理介质中(数据真正落到磁盘上)。 故障分析 写操作大致有上面5个流程, 下面我们结合上面的5个流程看一下各种级别的故障 : 当数据库系统故障时,这时候系统内核还是完好的。那么此时只要我们执行完了第3步