1.Redis的两种持久化方式
(1)RDB(Redis DataBase)
什么是RDB?
RDB持久化是将当前进程中的数据生成快照保存到硬盘(因此也称作快照持久化),保存的文件后缀是rdb;当Redis重新启动时,可以读取快照文件恢复数据。
优势:
* 适合大规模的数据恢复
* 对数据完整性和一致性要求不高的更适合使用
* 节省磁盘空间
* 恢复速度快
劣势:
* Fork的时候,内存中的数据被克隆了一份,大致2倍的膨胀性需要考虑
* 虽然Redis在fork的时候使用了写时拷贝技术,但是如果数据量庞大还是比较消耗性能
* 在备份周期一定间隔时间做一次备份,如果Redis意外down掉了,就会失去最后一次快照后的所有修改
持久化是如何执行的?
Redis 会单独创建(fork)一个子进程来进行持久化,首先会将数据写入到fork子线程的临时空间区生成一个临时文件,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件(dump.rdb),这种技术称为写时复制技术。整个过程中,主进程是不进行任何 IO 操作的,这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那 RDB 方式要比 AOF 方式更加的高效。RDB 的缺点是最后一次持久化后的数据可能丢失。
RDB文件配置
1)设置默认持久化文件名-dbfilename
2)设置默认持久化文件默认路径-dir
3)设置当硬盘满了,Redis就不再进行写入操作
-stop-writes-on-bgsave-error
4)设置持久化的快照是否进行压缩,Redis会采用LZF算法-rdbcompression
5)设置存储快照后,可以让Redis使用CRC64算法进行数据校验-rdbchecksum
6)在多少秒内有多少key发生变化,就进行持久化操作-save
save 秒 写操作次数
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/280028.html