1. 如何避免单线程模型的阻塞?
-
和客户端交互时的阻塞点
- 集合全量查询和聚合操作;
- bigkey 删除操作;删除操作的本质是要释放键值对占用的内存空间,空闲内存块链表操作需要时间;
- 清空数据库;
-
和磁盘交互时的阻塞点
- AOF日志同步写;阻塞主线程
-
主从节点交互时的阻塞点
- 加载 RDB 文件
-
切片集群实例交互时的阻塞点
2. 为什么主从库间的复制不使用 AOF?
- RDB 文件是二进制文件,无论是要把 RDB 写入磁盘,还是要通过网络传输 RDB,IO效率都比记录和传输 AOF 的高。
- 在从库端进行恢复时,用 RDB 的恢复效率要高于用 AOF。
3. 在主从切换过程中,客户端能否正常地进行请求操作呢?
主从集群一般是采用读写分离模式,当主库故障后,客户端仍然可以把读请求发送给从库,让从库服务。但是,对于写请求操作,客户端就无法执行了。
4. 如何应对数据倾斜?
- xx