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重新进入的时候,就会发现之前所做的都会在。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

NoSql之Redis持久化

如果你认为Redis是一个key value store, 那可能会用它来代替MySQL;如果认为它是一个可以持久化的cache, 可能只是它保存一些频繁访问的临时数据。       我们来设想一个问...

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

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

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

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

Redis的持久化机制

定时快照方式(snapshot): 该持久化方式实际是在Redis内部一个定时器事件,每隔固定时间去检查当前数据发生的改变次数与时间是否满足配置的持久化触发的条件,如果满足则通过操作系统fork...

redis持久化机制

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

redis持久化机制

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

深入剖析Redis RDB持久化机制

本文来自@凡趣科技 pesiwang同学的投稿分享,对Redis RDB文件持久化的内部实现进行了源码分析。 本文分析源码基于 Redis 2.4.7 stable 版本。下面是其文章原文: ...

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

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

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

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

深入剖析Redis RDB持久化机制

rdb是redis保存内存数据到磁盘数据的其中一种方式(另一种是AOF)。Rdb的主要原理就是在某个时间点把内存中的所有数据的快照保存一份到磁盘上。在条件达到时通过fork一个子进程把内存中的数据写到...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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