Redis持久化RDB有什么用
这篇文章给大家分享的是有关redis持久化RDB有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
创新互联于2013年开始,是专业互联网技术服务公司,拥有项目网站设计、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元滴道做网站,已为上家服务,为滴道各地企业和个人服务,联系电话:13518219792
Redis 持久化
一 、RDB
作用:在指定的时间间隔内将内存中的数据集快照写入磁盘,即Snapshot快照.它恢复时将快照文件直接读到内存中
原理:Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到
一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。
整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能
如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方
式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。
缺点:有可能丢失最后一次的保存
Fork: fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等)数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程
文件:Rdb保存的是dump.rdb文件
配置:SNAPSHOTTING快照
格式: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有什么用
当前链接:http://azwzsj.com/article/jiigii.html