一、redis持久化
1)AOF持久化:每执行一次写操作命令,就把这条命令追加写入进文件中
基于避免额外检查开销、不阻塞当前写操作命令的执行考虑,先执行uedbet西甲体育投注后写入;
避免额外开销:先写后执行,就要检查uedbet西甲体育投注语法的正确性,否则在还原时,可能碰到语法错误,导致无法执行。
风险:
数据可能会丢失:当命令执行后,redis当机,AOF日志还未记录时,redis重启无法还原最后一条数据
可能阻塞其他写操作:AOF写日志也在主线程中执行,因此可能会阻塞后面的写uedbet西甲体育投注,但不会阻塞当前的写uedbet西甲体育投注
AOF的日志的回写形式:
redis执行完写操作命令后,会将命令追加到serve.aof_buf的缓冲区
然后通过系统调用 write() 将buf缓冲区的数据写入AOF文件,此时并未写入磁盘,而是拷贝到了内核缓存区 page_cache 中,等待内核将数据写入磁盘中
具体内核缓冲区的数据什么时候写入磁盘,由内核决定
三种AOF日志的回写策略(普遍情况下一遍会选择 Everysec,但具体还是看自己的业务属性)
AOF日志过大的处理方式:
2)RDB持久化:将某一时刻的数据,以二进制的形式写入进磁盘文件中
3)混合持久化:redis4.0方式,集成了 AOF 和 RDB 的优势
二、redis过期与删除与内存淘汰
三、redis缓存设计
四、高可用