首页 » 网站推广 » phpredis数据丧失技巧_宕机了Redis若何避免数据损失

phpredis数据丧失技巧_宕机了Redis若何避免数据损失

访客 2024-12-15 0

扫一扫用手机浏览

文章目录 [+]

比如:set testkey test value 这条命令的实行,AOF的日志内容是这样展示的

3代表有当前命令有三个部分,3表示有三个字节,也便是set,3表示有三个字节,也便是set,3表示有三个字节,也便是set,7表示有7个字节,也便是testkey

phpredis数据丧失技巧_宕机了Redis若何避免数据损失

为什么先实行和写日志呢,便是为了不涌现语法缺点导致规复的时候出错,由于先写日志的话redis不会额外的检讨语法的缺点,这样错了的话导致后续规复的时候出错。
还有一个好处便是不会壅塞当前的写操作。

phpredis数据丧失技巧_宕机了Redis若何避免数据损失
(图片来自网络侵删)

但是也有风险,Redis用作数据库的话,没来得及写日志就宕机了,这样无法规复数据了。
还有便是如果把日志文件写入磁盘壅塞,后续的操作也没法实行了。

2、三种写回策略

分别是同步写回Always,每秒写回Everysec,操作系统掌握写回No。

高性能就选操作系统掌握,高可用就选同步写回,这种就写每秒写回.

同样毕竟是文件系统,文件太大了怎么办?

3、日志文件太大了怎么办?

AOF重写机制为啥可以让文件变小呢?由于重写只会保持最新的记录,一个key对应的value是可能被多次修正的,那么在原来的日志文件就会存在多条记录。
重写机制则只会存最新的记录。

4、AOF重写会壅塞吗?

重写是由后台线程bgrwriteaof来实行完成的,总结便是一个拷贝,两处日志。

一个拷贝便是主线程fork后台的bgrwriteaof子进程,fork会把主线程的内存拷贝一份给bgrwriteaof子进程,这里面就包含了数据库的最新数据,这个时候子进程就会把拷贝的数据写成操作,记入重写日志。

两处日志是,由于主线程未壅塞,仍旧可以处理新来的操作。
此时,如果有写操作,第一处日志便是示正在利用的AOF日志,Redis会把这个操作写到它的缓冲区。
这样一来,纵然宕机了,这个AOF日志的操作仍旧是完好的,可以用于规复。

而第二处日志,便是指新的AOF重写日志。
这个操作也会被写到重写日志的缓冲区。
这样,重写日志也不会丢失最新的操作。
等到拷贝数据的所有操作记录重写完成后,重写日志记录的这些最新操作也会写入新的AOF文件,以担保数据库最新状态的记录。
此时,我们就可以用新的AOF文件替代旧文件了。

总结来说,每次AOF重写时,Redis会先实行一个内存拷贝,用于重写;然后,利用两个日志担保在重写过程中,新写入的数据不会丢失。
而且,由于Redis采取额外的线程进行数据重写,以是,这个过程并不会壅塞主线程。

作者:狗日de阿良链接:https://juejin.cn/post/6896072419543515143

标签:

相关文章

介绍镰刀爆发的奥秘,技术与文化的交融

镰刀,作为我国农业发展的见证者,承载着丰富的历史与文化。在漫长的农耕时代,镰刀不仅是农民耕作的工具,更是中华民族勤劳与智慧的象征。...

网站推广 2024-12-17 阅读0 评论0

介绍跟庄大数据,投资者智慧的新利器

随着金融市场的不断发展,投资者对于投资策略的需求也越来越高。在这个大数据时代,跟庄大数据作为一种新兴的投资工具,越来越受到投资者的...

网站推广 2024-12-17 阅读0 评论0

从19的视角,探索科技与创新的无限可能

自古以来,人们对于数字19的解读就充满了神秘色彩。在西方文化中,19象征着“天启”,寓意着不凡的命运;在中国传统文化中,19则被视...

网站推广 2024-12-17 阅读0 评论0