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作为内存数据库使用时,必须要解决一个问题:数据的持久性。有些将Redis作为缓存使用的场景也需要将缓存的数据持久化到存储介质上...
  • hubin0011
  • hubin0011
  • 2014年05月07日 19:03
  • 1393

redis的持久化和缓存机制

说道redis,我们可能都会知道了他是一个类似缓存的一个内存数据库,我们从未感知到它的存在是因为他很快,为什么非常快,是因为他的发展到应用很快,还有他的反应速度也是非常快的。         上一篇文...
  • tr1912
  • tr1912
  • 2017年04月16日 23:54
  • 2050

redis的两种持久化机制:RDB和AOF介绍

redis 版本:3.0.7 Redis 持久化 Redis 提供了多种不同级别的持久化方式: RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time...
  • kexiaoling
  • kexiaoling
  • 2016年07月02日 15:38
  • 390

Redis入门之浅谈aof持久化机制

redis中的持久化策略之浅谈aof
  • candy_rainbow
  • candy_rainbow
  • 2016年10月12日 22:47
  • 796

NoSql之Redis持久化

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

Redis的内存优化与对持久化机制的分析

通过对Redis支持的数据类型实现上的分析可以看出redis实际上的内存管理成本非常高,即占用了过多的内存,作者对这点也非常清楚,所以提供了一系列的参数和手段来控制和节省内存,我们分别来讨论下。 ...
  • u012538947
  • u012538947
  • 2015年04月06日 23:17
  • 1210

Redis数据持久化机制AOF原理分析之配置详解

Redis AOF数据持久化的参数配置详细注释
  • Acceptedxukai
  • Acceptedxukai
  • 2014年01月11日 12:59
  • 12421

redis之AOF持久化机制

AOF Redis 分别提供了 RDB 和 AOF 两种持久化机制: RDB 将数据库的快照(snapshot)以二进制的方式保存到磁盘中。AOF 则以协议文本的方式,将所有对数据库进行过...
  • xiongping_
  • xiongping_
  • 2015年06月02日 10:07
  • 240

redis 持久化机制

redis将数据存入内存中,将内存中数据同步到硬盘中 (在操作的时候服务异常停止会导致数据丢失) 1、 采用快照方式snapshotting  将数据存入文件里redis/bin/d...
  • yang_xu_1987
  • yang_xu_1987
  • 2017年09月17日 16:29
  • 67

Redis持久化机制 AOF

http://redisbook.readthedocs.io/en/latest/internal/aof.html Redis 分别提供了 RDB 和 AOF 两种持久化机制: ...
  • z69183787
  • z69183787
  • 2017年07月15日 19:38
  • 329
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NoSQL之Redis高级命令详解--持久化机制
举报原因:
原因补充:

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