NoSQL之Redis高级命令详解--持久化机制

原创 2013年12月05日 11:54:07

Redis的持久化机制

Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中得数据同步到硬盘来保证持久化。

Redis目前支持两种持久化方式:

1.snapshotting(快照)也是默认的方式---把数据做一个备份

2.Append-only file(缩写aof)的方式---将写,更改,删除等操作存到文件中

一种将数据存到文件中,而另一种是将操作存到文件中。

一、Snapshotting方式

快照是默认的持久化方式。这种方式是将内存中的数据以快照的方式写入二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n庙内如果超过m个key做修改就自动做快照。

设置方式:save <seconds> <changes>

save 300 10#300秒内如果有超过10个键被修改,那么自动发快照保存

save 60 1000#1分钟内超过1000个key被修改,则自动发快照保存

redis可以同时支持多条规则

缺点:有时间间隔,所以有可能丢失数据。

二、aof方式

由于快照方式是在一定间隔时间做一次,所以如果redis意外down掉的画,就会丢失最后一次快照后的所有修改。

aof方式比快照方式有更好的持久化,是由于在使用aof时,redis会将每一个收到的写命令都通过write函数追加到文件中,当redis重启时会通过重新执行文件中保存的写命令来在内存中重新构建整个数据库内容。

由于os会在内核中缓存write做的修改,所以可能不是立即写到磁盘上。这样aof方式的持久化也还是有可能会丢失部分修改。

可以通过配置文件告诉redis我们要通过fsync函数强制os吸入到磁盘的时机。

以上是开启aof持久化的方式还有就是aof持久化的三种方式以及优缺点。

当我们打开appendonly yes然后选取第二种保存到配置文件中,然后用pkil redis杀死redis的进程。然后重新启动redis的服务端,并且登录客户端。重新进行操作比如set key 'my key'

然后exit出来,就可以在redis的安装目录下看到一个appendonly.aof的文件我们vim打开它,看到类似这样

其实里面存储的就是你所有操作过的命令。

这样你在pkill掉redis重新进入的时候,就会发现之前所做的都会在。


Redis高级实用特性(持久化机制、发布订阅消息、虚拟内存的使用)

持久化机制Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到硬盘来保证持久化。 snapshotting(快照)也是默认方式 快照是默认的持久化方式。这种方式是将...
  • apple_5
  • apple_5
  • 2017年05月15日 14:04
  • 246

Redis实战《红丸出品》4.4 Redis高级实用特性之持久化机制

----------------------------------------------------------------------------------------------------...

Redis数据持久化机制AOF原理分析二

本文所引用的源码全部来自Redis2.8.2版本。 Redis AOF数据持久化机制的实现相关代码是redis.c, redis.h, aof.c, bio.c, rio.c, config.c ...

Redis持久化机制和虚拟内存的使用

Redis数据都在内存中,经常要把内存的数据同步到硬盘中来保证持久化 持久化的方式: RDB:1.Snapshotting AOF:2.Append-only file http://www.redi...

Redis源码剖析和注释(十七)--- RDB持久化机制

Redis RDB持久化机制1. RDB的介绍因为Redis是内存数据库,因此将数据存储在内存中,如果一旦服务器进程退出,服务器中的数据库状态就会消失不见,为了解决这个问题,Redis提供了两种持久化...
  • men_wen
  • men_wen
  • 2017年05月06日 07:28
  • 1230

深入剖析Redis RDB持久化机制

http://blog.nosqlfan.com/html/4039.html

redis持久化机制

redis持久化机制redis 是一个支持持久化的内存数据库,也就是说 redis 需要经常将内存中的数据同步到磁盘 来保证持久化。redis 支持两种持久化方式,一种是 Snapshotting(快...

redis持久化机制

一、Redis提供了哪些持久化机制:       1). RDB持久化:     该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。        2). AOF持久化:    ...
  • 5iasp
  • 5iasp
  • 2012年12月18日 23:08
  • 1065

深入理解Redis的持久化机制和原理

Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能、持久存储、适应高并发应用场景等优势。它虽然起步较晚,但发展却十分迅速。  近日,Redis的作者在博客...
  • he90227
  • he90227
  • 2017年11月24日 10:13
  • 77

Redis的持久化机制RDB与AOF

Redis的持久化即将内存中的数据同步到硬盘,主要包括两种方式RDB、AOF。 1.RDB 将内存中的数据以快照的方式写入到二进制文件dump.rdb,在redis.conf中可以设置发起快照保存的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NoSQL之Redis高级命令详解--持久化机制
举报原因:
原因补充:

(最多只允许输入30个字)