redis基础篇
By skyshappiness Posted 2022-12-21 22:44:34 In

一、redis持久化

    1)AOF持久化:每执行一次写操作命令,就把这条命令追加写入进文件中

         基于避免额外检查开销、不阻塞当前写操作命令的执行考虑,先执行指令后写入;

         避免额外开销:先写后执行,就要检查指令语法的正确性,否则在还原时,可能碰到语法错误,导致无法执行。

         风险:

              数据可能会丢失:当命令执行后,redis当机,AOF日志还未记录时,redis重启无法还原最后一条数据

              可能阻塞其他写操作:AOF写日志也在主线程中执行,因此可能会阻塞后面的写指令,但不会阻塞当前的写指令


         AOF的日志的回写形式:

              redis执行完写操作命令后,会将命令追加到serve.aof_buf的缓冲区

              然后通过系统调用 write() 将buf缓冲区的数据写入AOF文件,此时并未写入磁盘,而是拷贝到了内核缓存区 page_cache 中,等待内核将数据写入磁盘中

              具体内核缓冲区的数据什么时候写入磁盘,由内核决定

              三种AOF日志的回写策略(普遍情况下一遍会选择 Everysec,但具体还是看自己的业务属性)


              AOF日志过大的处理方式:

              





    2)RDB持久化:将某一时刻的数据,以二进制的形式写入进磁盘文件中

          

    3)混合持久化:redis4.0方式,集成了 AOF 和 RDB 的优势


二、redis过期与删除与内存淘汰

    

三、redis缓存设计


四、高可用



友情链接
联系方式
  • 邮箱 / E-mail:121388038@qq.com