Redis总结(下)

1. Redis持久化

  • 快照(RDB)

概述:快照是全量备份;存储格式是二进制序列化数据,非常紧凑

快照原理

redis使用操作系统的多进程COW(copy on write)机制来实现快照持久化

  • AOF日志

概述:AOF日志是连续的增量备份。记录的是redis指令。长期运行过程AOF日志会变得异常巨大,需要定期进行AOF重写

AOF原理

AOF执行顺序:①参数校验、执行逻辑②存储到AOF

AOF重写

开辟一个子进程对内存进行遍历,并转换成一系列的redis操作指令,序列化到一个新的AOF文件中

序列化完毕后再将操作期间发生的增量AOF日志追加到新的AOF文件中

追加完毕后就立即替代旧的AOF日志文件

AOF的断电日志丢失问题

实际中持久化运维

  • redis混合持久化

将RDB文件和AOF文件一起持久化

2. Redis的管道消息

  • 什么是管道

管道的作用(实际优化点)

深入理解管道本质

3. Redis事务

  • redis事务基本用法:multi(开启事务)、exec(提交事务)、discard(放弃事务)
  • redis事务执行流程

开启事务

将指令提交到redis服务器的事务队列中

执行exec指令,就开始执行整个事务

  • redis事务不具备原子性

如果在多个命令执行过程中,有一条指令是错误的,该指令会报异常,但是不会影响其他命令执行

  • 事务优化

redis一个事务通常伴随多条指令,一个指令就要经过一次网络读写。因此事务结合pipeline一起使用,可以将多次IO压缩成一次IO

  • redis事务乐观锁

watch指令(必须在watch之前,禁止在multi和exec之间)

4. Redis集群

  • 主从同步
  • sentinal(哨兵)
  • Codis
  • Cluster

5. 主从同步

  • 概述:主从不是集群;有了主从,在没有哨兵的情况下可以通过运维让从节点过来接管
  • redis的CAP

Consistant:一致性

Availability:可用性

Partition tolerance:分区容忍性

通常:发生网络分区时,一致性和可用性两难全

redis满足最终一致性

在主从产生网络分区的情况下,redis依然可用,因此redis满足可用性,通过从从同步实现最终一致性

  • 主从同步与从从同步

redis支持主从同步和从从同步,减轻主节点的同步负担

增量同步

主节点将对内存产生修改的指令记录到一个环形缓冲区

异步将buffer中的指令同步到从节点

从节点一边执行指令流进行同步,一边向主节点反馈自己同步到哪

潜在问题:如果网络分区,环形缓冲区写满,覆盖了原先没有同步的指令,会造成数据丢失

快照同步

主节点先执行系统调用bgsave,将内存数据快照到磁盘

将快照文件发送到从节点

从节点先清

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

后端开发面试高频八股+算法 文章被收录于专栏

涵盖各大厂考官最爱问知识点,22年最新整理!

全部评论

相关推荐

03-10 14:19
已编辑
重庆邮电大学 前端工程师
球Offer上岸:测试也难求一面 逆天
点赞 评论 收藏
分享
评论
5
10
分享

创作者周榜

更多
牛客网
牛客企业服务