一、.什么是RDB:
RDB(redis data base) redis的持久化操作,将内存中的数据存入到磁盘中。
相关配置在配置文件中的SNAPSHOTTING中修改。
二、.什么时候会触发RDB
1.只要redis触发了配置中的对key进行了以下几种操作就会将内存中的数据存入磁盘中,可以修改。
2.如果执行了flashiALL等删除key的操作或者是shotdown关闭redis时,redis也会在关闭之前进行一次持久化操作。
3.使用命令sava:使用这个命令后redis只会进行数据的保存,其他操作全部阻塞,直到保存完成
4.使用命令bgsave:这个会异步的进行快照操作(内存数据的保存),可以在保存的同时响应客户端的请求。
备份的数据默认保存在dump.rdb文件中
三、.RDB配置相关信息:
sava 秒钟 写操作次数:当满足这个条件事,redis就会进行一次rdb操作,如果想禁用rdb操作,在sava中传入空字符串
stop-warite-on-bgsava-error:当后台保存出错时,停止写入数据到磁盘中,默认为yes
rdbcompression:对于保存到磁盘中的快照可以用这个属性设置为是否进行压缩存储,那么redis就会使用LZF算法进行压缩,但是也会额外消耗CPU的性能,节省的空间与CPU的性能相比,我认为CPU更为重要,建议关闭
rdbchecksum:在存储快照后,可以设置这个属性让redis使用CRC64算法对数据进行检验,可以提高安全性,但是会额外消耗10%的性能。
dbfilename:redis持久化的数据文件名。
dir:显示在哪个路径启动的redis服务
四、如何恢复数据到内存中
在备份的文件dump.rdb移动到redis的安装目录下,启动redis服务即可
五、RDB的优点和劣势
优点:适合大规模的数据恢复、对数据完整性和一致性要求不高(两分钟就保存一次,各种操作容易触发)
劣势:1.在一定时间间隔内做一次触发,如果redis进程出现意外时,最后一次的快照就会丢失。
2.redis在进行RDB时会fork一个当前的进程,内存中的数据变大了两倍,内存空间的消耗需要考虑