🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#### 单线程 Redis是单线程的,在一个瞬间只会执行一个命令 . 命令只能一个个的执行 . ![](https://box.kancloud.cn/8e31d958e56ace14a24d1342204e0860_1003x323.png) #### 单线程为什么这么快 ? * 纯内存,本质是数据放在内存中,速度非常快 . (主要原因) * 非阻塞IO ,epoll * 避免线程切换和竞态消耗 . 有时候使没有合理使用多线程会比单线程还要慢. #### epoll 模型 ![](https://box.kancloud.cn/720e174e81670ee19ab30650114a8639_1054x429.png) #### 使用单线程要注意什么呢 ? * 一次只运行一次命令 . * 拒绝长(慢)命令. 如 : * keys , flushall,flushdb,slow lua script , mutil/exec , operate big value(collection) . * 如果一个命令执行了10秒,那么其他命令就需要等待 . * 其实不是单线程,在进行aof的时候其实有其他进程来做的. * fysnc file descriptor * close file descriptor