Redis常见问题

42 阅读1分钟

1. 如何避免单线程模型的阻塞?

  • 和客户端交互时的阻塞点

  1. 集合全量查询和聚合操作;
  2. bigkey 删除操作;删除操作的本质是要释放键值对占用的内存空间,空闲内存块链表操作需要时间;
  3. 清空数据库;
  • 和磁盘交互时的阻塞点

  1. AOF日志同步写;阻塞主线程
  • 主从节点交互时的阻塞点

  1. 加载 RDB 文件
  • 切片集群实例交互时的阻塞点

2. 为什么主从库间的复制不使用 AOF?

  • RDB 文件是二进制文件,无论是要把 RDB 写入磁盘,还是要通过网络传输 RDB,IO效率都比记录和传输 AOF 的高。
  • 在从库端进行恢复时,用 RDB 的恢复效率要高于用 AOF。

3. 在主从切换过程中,客户端能否正常地进行请求操作呢?

主从集群一般是采用读写分离模式,当主库故障后,客户端仍然可以把读请求发送给从库,让从库服务。但是,对于写请求操作,客户端就无法执行了。

4. 如何应对数据倾斜?

  1. xx