NoSQL之Redis高级命令详解--持久化机制
来源:互联网 发布:java第三版课后题答案 编辑:程序博客网 时间:2024/06/07 06:17
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高级命令详解--持久化机制
- NoSQL之Redis高级命令详解--持久化机制
- NoSql之Redis持久化
- NoSQL之Redis高级实用命令详解--事务处理
- NoSql数据库之Redis的持久化
- NoSQL数据库之Redis数据库管理六(Redis的高级应用之事务处理、持久化操作、pub_sub、虚拟内存)
- NoSQL数据库之Redis数据库管理六 (Redis的高级应用之事务处理、持久化操作、pub_sub、虚拟内存)
- NoSQL之Redis高级实用命令详解--安全和主从复制
- Redis实战《红丸出品》4.4 Redis高级实用特性之持久化机制
- redis高级特性之持久化
- NoSQL之Redis---持久化(persistence)概念原理
- NoSQL之Redis---持久化(persistence)示例
- redis 持久化机制AOF/RDB详解
- redis之AOF持久化机制
- redis持久化机制
- Redis持久化机制
- redis持久化机制
- redis持久化机制
- 工作中用到的正则表达式
- sql删除几个字段值相同的重复列
- VARIANT数据类型的使用
- [走过的路]联想时光——人艰不拆(店长篇)
- Google C++编程命名约定
- NoSQL之Redis高级命令详解--持久化机制
- 技术博客推荐
- uiimageview 圆角
- android深度搜索学习笔记二(控制发光二级管)
- 第十五周项目之-杨辉三角
- VS2008中文显示混乱的问题
- java多线程售票程序中synchronized用法反思
- 比特币居高不上不下,山寨币或许是更好的选择
- (转)FindFirstChangeNotification,创建一个文件通知对象,该对象用于监视文件系统发生的变化