Redis持久化RDB有什么用

这篇文章给大家分享的是有关redis持久化RDB有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联于2013年开始,是专业互联网技术服务公司,拥有项目网站设计、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元滴道做网站,已为上家服务,为滴道各地企业和个人服务,联系电话:13518219792

Redis 持久化

一 、RDB

作用:在指定的时间间隔内将内存中的数据集快照写入磁盘,即Snapshot快照.它恢复时将快照文件直接读到内存中

原理:Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到
一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。
整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能
如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方
式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。

缺点:有可能丢失最后一次的保存

Fork: fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等)数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程

文件:Rdb保存的是dump.rdb文件

配置:SNAPSHOTTING快照

格式:save ->  save 秒钟  写操作次数

默认:默认触发条件

        15分钟(900秒) 改1次 

         5分钟(300秒)改10次 

         1分钟(60 秒)改10000次              

禁用:不设置 或者  save ""

二、案例

        设置 save 120 10  (120秒改10次)

1.删除备份文件

[root@VM_0_7_centos ~]# cd /usr/local/bin
[root@VM_0_7_centos bin]# ll
total 37820
-rw-r--r-- 1 root root     231 Jun 19 18:35 dump.rdb
-rwxr-xr-x 1 root root 4739968 Jun 12 23:09 redis-benchmark
-rwxr-xr-x 1 root root 9634424 Jun 12 23:09 redis-check-aof
-rwxr-xr-x 1 root root 9634424 Jun 12 23:09 redis-check-rdb
-rwxr-xr-x 1 root root 5050384 Jun 12 23:09 redis-cli
lrwxrwxrwx 1 root root      12 Jun 12 23:09 redis-sentinel -> redis-server
-rwxr-xr-x 1 root root 9634424 Jun 12 23:09 redis-server
-rwxr-xr-x 1 root root    9840 Jun 12 22:55 tclsh8.6
[root@VM_0_7_centos bin]# rm -f dump.drb

2.启动redis服务
3.设置值

127.0.0.1:9736> set k1 v1
OK
127.0.0.1:9736> set k2 v2
OK
127.0.0.1:9736> set k3 v3
OK
127.0.0.1:9736> set k4 v4
OK
127.0.0.1:9736> set k5 v5
OK
127.0.0.1:9736> set k6 v6
OK
127.0.0.1:9736> set k7 v7 
OK
127.0.0.1:9736> set k8 v8
OK
127.0.0.1:9736> set k9 v9
OK
127.0.0.1:9736> set k10 v10 
OK
127.0.0.1:9736> set k11 v11
OK
127.0.0.1:9736> set k12 v12
OK
127.0.0.1:9736> set k13 v13

4. 备份

[root@VM_0_7_centos bin]# cp dump.rdb dump-bk.rdb

[root@VM_0_7_centos bin]# ll
total 37824
-rw-r--r-- 1 root root     275 Sep 23 10:48 dump-bk.rdb
-rw-r--r-- 1 root root     275 Sep 23 10:43 dump.rdb
-rwxr-xr-x 1 root root 4739968 Jun 12 23:09 redis-benchmark
-rwxr-xr-x 1 root root 9634424 Jun 12 23:09 redis-check-aof
-rwxr-xr-x 1 root root 9634424 Jun 12 23:09 redis-check-rdb
-rwxr-xr-x 1 root root 5050384 Jun 12 23:09 redis-cli
lrwxrwxrwx 1 root root      12 Jun 12 23:09 redis-sentinel -> redis-server
-rwxr-xr-x 1 root root 9634424 Jun 12 23:09 redis-server
-rwxr-xr-x 1 root root    9840 Jun 12 22:55 tclsh8.6

5. 删除信息

127.0.0.1:9736> FLUSHALL
OK
127.0.0.1:9736> keys *
(empty array)
127.0.0.1:9736> SHUTDOWN
not connected> exit
[root@VM_0_7_centos bin]#

6. 重连查看内容

127.0.0.1:9736> keys *
(empty array)

注意:FLUSHALL   SAVE 或 SHUTDOWN 会迅速将内存数据保存至dump.rdb 

7. shutdown exit

8. 恢复备份的文件

[root@VM_0_7_centos bin]# rm -f dump.rdb
[root@VM_0_7_centos bin]# cp dump-bk.rdb dump.rdb

9.查看恢复的信息

127.0.0.1:9736> keys *
 1) "k1"
 2) "k3"
 3) "k4"
 4) "user"
 5) "k2"
 6) "list01"
 7) "k8"
 8) "k10"
 9) "k6"
10) "k9"
11) "k7"
12) "list02"
13) "k5"

10. 及时备份命令save

三、. 其他配置

stop-writes-on-bgsave-erroryes: 保存出错时停止保存

如果配置为no 表示不在乎数据不一致或者有其他的手段发现和控制、

rdbcompression:对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能,默认yes 开启

rdbchecksum:在存储快照后,还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能

dbfilenamedump.rdb :备份文件名称

dir./  : 指定本地数据库存放目录

四、关键

12. 如何触发RDB快照

12.1 配置文件中默认的快照配置,冷拷贝后重新使用,可以cp dump.rdb dump_new.rdb

12.2 命令save或者是bgsave,

Save:save时只管保存,其他不管,全部阻塞

BGSAVE:Redis会在后台异步进行快照操作,快照操作同时还可以响应客户端请求。可以通过lastsave命令获取最后一次成功执行快照的时间。

12.3 执行flushall命令,也会产生dump.rdb文件,但里面是空的,无意义。

13. 如何恢复

将备份文件(dump.rdb)移动到redis安装目录并启动服务即可,CONFIG GET dir获取目录

14.优势

适合大规模的数据恢复,对数据完整性和一致性要求不高

15.劣势

在一定间隔时间做一次备份,所以如果redis意外down掉的话,就会丢失最后一次快照后的所有修改,fork的时候,内存中的数据被克隆了一份,大致2倍的膨胀性需要考虑

16.如何停止

动态所有停止RDB保存规则的方法:redis-cli config set save ""

17.小总结

 Redis持久化RDB有什么用

感谢各位的阅读!关于“Redis持久化RDB有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


网页标题:Redis持久化RDB有什么用
分享链接:http://myzitong.com/article/jiigii.html