Redis学习——Redis持久化之RDB备份方式保存数据
来源:互联网 发布:tomcat域名重定向设置 编辑:程序博客网 时间:2024/05/16 06:24
来源http://blog.csdn.net/u010648555/article/details/73433717
从这一个介绍里面知道,redis比memcache作为缓存数据库强大的地方,一个是支持的数据类型比较多,另一个就是redis持久化功能。
下面就介绍Redis的持久化之RDB!
一:什么是redis的持久化
官网介绍:
英文:https://redis.io/topics/persistence
中文:http://www.redis.cn/topics/persistence.html
二:Redis的RDB是什么?
在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里,Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到。
一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。
备注解释:
--fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等)数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程--AOF方式,点击这里查看[待补充]!
三:Redis配置文件redis.conf中关于RDB的相关配置
首先贴出来配置信息:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
如果上面的配置文件有看不懂,请点击这里进行想关的查看了解:Redis配置文件-redis.conf详解
1:如何触发RDB快照
- 配置文件中默认的快照配置
- 1
- 2
- 3
- 命令save或者是bgsave
SAVE:save时只管保存,其它不管,全部阻塞
BGSAVE:Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。可以通过lastsave
命令获取最后一次成功执行快照的时间
注:执行flushall命令,也会产生dump.rdb文件,但里面是空的,无意义
2:默认RDB方式保存的是dump.rdb文件,恢复也是识别的是dump.rdb
3:配置位置,以及快照恢复
查看目录
- 1
- 2
举例:
我的redis启动服务的目录是 /usr/local/bin 下面
我启动redis的目录是/root 下面,然后生成的的dump.rdb 文件也是在/root 目录下,假如redis服务器出现问题,挂掉了。那么想要根据rdb恢复数据
(1)将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务
(2)当前目录启动
如果我的dump.rdb 在/root下面,而我到/usr/local/bin这个目录下去启动了redis,那么数据是无法恢复的。只能从 /root 下面启动才能看到之前保存的数据。
如下操作:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
下面我关闭redis,假设redis服务挂掉!
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
那么当我进入/usr/local/bin 目录下启动重新启动redis,看数据是否恢复
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
那么我再次关闭服务,从/root下启动redis看数据是否恢复
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
相信我这些操作,也讲明白快照恢复,上面说的这一句:将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可或者就在当前目录启动。
四:Redis优点
适合大规模的数据恢复
对数据完整性和一致性要求不高
五:Redis缺点
- 在一定间隔时间做一次备份,所以如果redis意外down掉的话,就会丢失最后一次快照后的所有修改
- - fork的时候,内存中的数据被克隆了一份,大致2倍的膨胀性需要考虑
六:如何停止RDB
1: 配置文件注释掉
- 1
- 2
- 3
启动 # save “”, 去掉 #。保存后重启
2:动态停止RDB命令
在redis-cli中执行:
- 1
七:大总结
- 1
- 2
- RDB是一个非常紧凑的文件
- RDB在保存RDB文件时父进程唯一需要做的就是folk出一个子进程,接下来工作全部交给子进程来做,父进程不需要再做其他IO操作,所以RDB持久化方式可以最大化redis的性能
- 与AOF相比,在恢复大的数据时候,RDB方式更快一些
- 数据丢失风险大
- RDB需要经常folk子进程来保存数据集到磁盘,当数据集比较大额时候,folk的过程是比较耗时的,可能会导致redis在一些毫秒级不能响应客服端请求
欢迎访问我的csdn博客,我们一同成长!
“不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!”
博客首页:http://blog.csdn.net/u010648555
- Redis学习——Redis持久化之RDB备份方式保存数据
- Redis学习——Redis持久化之RDB备份方式保存数据
- Redis学习——Redis持久化之AOF备份方式保存数据
- Redis学习——Redis持久化之AOF备份方式保存数据
- Redis 持久化数据方式 RDB AOF
- Redis的持久化之RDB方式
- Redis的持久化之RDB方式
- Redis持久化之RDB
- Redis之RDB持久化
- Redis 持久化之RDB
- Redis持久化之RDB
- Redis 持久化之 RDB
- Redis——数据持久化AOF与RDB
- 【redis学习】rdb方式和aof方式持久化
- redis持久化之----RDB(Redis DataBase )
- [Redis]Redis持久化之RDB快照
- 【Redis持久化】——RDB
- Redis的持久化——RDB
- HTTPS
- 序列化和反序列化方法
- Centos7.0下redis数据库的安装
- Android 开源项目,发布到 JitPack.io
- unity编辑器拓展十——用代码实现unity菜单命令
- Redis学习——Redis持久化之RDB备份方式保存数据
- Spring Data JPA(2)--利用PagingAndSortingRespository实现分页和排序
- 【Java案例】-Jedis操作redis教程
- qsort函数、sort函数
- mysql里 filesort排序详解
- sebp/elkx 的安装
- 操作系统从硬件到应用程序之间的关系
- JNA路径问题--Native.loadLibrary("NLPIR", CLibrary.class)的坑
- 直播间改版