二刷剑指offer

【Redis】

  • 缓存雪崩和缓存穿透
  • 如何解决 Redis 的并发竞争 Key 问题
  • 如何保证缓存和数据库的数据一致性
  • redis是单线程还是多线程?为什么那么快?
  • redis数据分布方式(一致性哈希)
  • redis主从复制

【MySQL】

  • 事务(ACID)
  • 并发一致性问题(丢失修改/读脏数据/不可重复读/幻读)
  • 封锁粒度(行、表)、封锁类型(读写、意向)、封锁协议(三级/两段)
  • 隔离级别(未提交读/提交读/可重复读/可串行化)
  • 多版本并发控制(MVCC快照、版本号)解决RC/RR 无法解决脏读
  • 行级锁(Record Lock+Gap Locks=Next-Key Locks)
  • 三大范式(每列不可再分/每张表只描述一件事情/每一列数据都和主键直接相关,而不能间接相关)
  • B+ Tree 索引原理(顺序访问指针)
  • 哈希索引/全文索引/空间数据索引
  • 聚簇索引/非聚簇索引--概念
  • 回表查询和覆盖索引
  • 索引失效的情况(10)
  • Explain语句各字段的意义(10)
  • 索引的优点(3)
  • 最左前缀原则/联合索引如何建立
  • 一条SQL语句的执行过程(查:权限/执行器/优化器/权限|| 更:redolog和binlog)
  • MyISAM和InnoDB区别(事务、并发、外键、备份、恢复、其他)
  • Sharding 策略/问题
  • MySQl主从复制(主binlog-->从relay log)
  • 主从复制或读写分离等数据不一致性问题(半同步复制法、全同步复制法、缓存记录写key法)

Redis主从复制:
1、当从库和主库建立MS关系后,会向主数据库发送SYNC命令
2、主库接收到SYNC命令后会开始在后台保存快照(RDB持久化过程),并将期间接收到的写命令缓存
起来
3、当快照完成后,主Redis会将快照文件和所有缓存的写命令发送给从Redis
4、从Redis接收到后,会载入快照文件并且执行收到的缓存的命令
5、之后,主Redis每当接收到写命令时就会将命令发送从Redis,从而保证数据的一致