异步机制:如何避免单线程模型的阻塞?
Redis 实例有哪些阻塞点?
- 客户端:网络 IO,键值对增删改查操作,数据库操作;
- 磁盘:生成 RDB 快照,记录 AOF 日志,AOF 日志重写;
- 主从节点:主库生成、传输 RDB 文件,从库接收 RDB 文件、清空数据库、加载 RDB 文件;
- 切片集群实例:向其他实例传输哈希槽信息,数据迁移。
1. 和客户端交互时的阻塞点
复杂度高的增删改查操作肯定会阻塞 Redis
(1)集合全量查询和聚合操作
不同数据类型删除耗时:
(2)bigkey 删除操作
(3)清空数据库
2. 和磁盘交互时的阻塞点
(4)AOF 日志同步写。
3. 主从节点交互时的阻塞点
在主从集群中,主库需要生