redis 日志文件

redis 日志文件,第1张

redis的日志默认会在控制台输出,不会生成日志文件的,如果需要以日志文件的方式保存,我们可以手动修改下配置文件

1.找到redis的配置文件,进入编辑状态

2.搜索logfile这项,把日志文件的完整路径填入""里面就可以,如: "/var/logs/redis.log"

3.修改完之后保存退出就可以了

4.把路径里面的文件夹创建好,日志文件会在启动服务的时候自动创建

5.启动服务,记得要带你刚刚编辑的配置文件启动,这时候启动窗口将不输出任何日志,全部保存到日志文件里了

本节主要分析下Redis日志持久化机制,包括RDB、AOF以及360开源的Pika

AOF是 写后日志 ,即先写内存再记录日志;日志中记录用户的 *** 作命令(类似mysql的binlog)

由于Redis是单线程,如果主线程处理写AOF务必会影响用户请求,因此Redis提供了三种写策略

小结

Always 可靠性高,数据基本不丢失,但是每个命令都要写磁盘,性能影响较大;

Everysec 性能适中,宕机时最多丢失1秒数据,Redis的默认策略

No 性能好,但是宕机时丢失数据较多

思考此时AOF日志机制存在什么问题?

写AOF日志的目的是为了给数据做持久化,以便宕机或重启时还原内存数据,要实现这个目标需要考虑几个问题:

触发写AOF有两种方式:

再来思考下:重写机制之后AOF日志用于重启或宕机恢复redis还存在什么问题?

要想解决这两个问题就需要引入下面的RDB,gogogo...

RDB即内存快照,就是指内存中的数据在某一个时刻的状态记录(类似thread dump),把这一时刻的状态以文件的形式写到磁盘文件上,用于数据恢复;

触发RDB快照跟AOF一样,同样有两种方式:

看完AOF和RDB的方案,再继续思考下要想实现即高效又完全不丢失数据的目标,还存在哪些问题:

Pika 主要解决的是用户使用 Redis 的内存大小超过 50G、80G 等等这样的情况,会遇到启动恢复时间长,一主多从代价大,硬件成本贵,缓冲区容易写满等问题。Pika 就是针对这些场景的一个解决方案。

本节分析了AOF、RDB、Pika三种缓冲方案的实现,以及各自解决了什么问题,又带来了什么问题;具体使用时还要具体分析权衡利弊,下面几点建议


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7934418.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存