通过阅读文档发现redis居然是单线程的,它是怎么做到能够支撑这么高的并发的?用到了什么特殊的算法结构或者非阻塞模型吗?
认证高级PHP讲师
因为 Redis 的操作都非常快速——它的数据全部在内存里,完全不需要访问磁盘。至于并发,Redis 使用多路 I/O 复用技术,本身的并发效率不成问题。
当然,单个 Redis 进程没办法使用多核(任一时刻只能跑在一个 CPU 核心上),但是它本来就不是非常计算密集型的服务。如果单核性能不够用,可以多开几个进程。
搜索: Redis 单线程-多路复用io模型
因为 Redis 的操作都非常快速——它的数据全部在内存里,完全不需要访问磁盘。至于并发,Redis 使用多路 I/O 复用技术,本身的并发效率不成问题。
当然,单个 Redis 进程没办法使用多核(任一时刻只能跑在一个 CPU 核心上),但是它本来就不是非常计算密集型的服务。如果单核性能不够用,可以多开几个进程。
搜索: Redis 单线程-多路复用io模型