文章目录
一. Redis的单线程
- 说明:Redis单线程主要是指【网络IO】和【键值对读写】操作是由一个线程来完成的
- 原因:避免多线程的并发控制问题及线程间的上下文切换
- QPS:10w级别QPS处理能力,因为大部分操作都在内存上,且采用了高效的数据结构
- 基于多路复用的Redis高性能IO模型
二. 可能影响单线程性能的操作
1. bigKey操作
bigKey会导致网络传输、读写操作、内存消耗都变大
2. 复杂命令
复杂命令操作时间长,阻塞主线程
禁用:KEYS(使用SCAN命令代替)/FLUSHALL/FLUSHDB
SORT/SUNION/ZUNIONSTORE
3. 大量key集中过期
a.) Redis的过期机制也是在主线程中执行的,大量key集中过期会触发主动删除key策略
b.) 主动删除key策略