Redis到底是单线程还是多线程?这种说法有些不严谨!!! 考虑到版本上的问题版本3.x最早的版本:redis是单线程!redis4.x之后才支持多线程,直到redis6/7才稳定Redis是单线程 主要是指Redis的网络IO和键值对读写是由一个线程来完成的,Redis在处理客户端请求时包括获取(socket读)、解析、执行、内容返回(socket写)等都是由一个顺序串行的主线程处理,这就是所谓的"单线程"。这也是Redis对外提供键值对存储服务的主要流程。但Redis的其他功能,比如持久化RD、AOF、异步删除、集群数据同步等等,其实是由额外的线程执行的。Redis命令工作线程是单线程的,但是,整个Redis来说,是多线程的;Redis3.x单线程时代性能依旧快的原因基于内存操作:Redis的所有数据都存在内存中,因此所有的运算都是内存级别的,所以它的性能比较高。数据结构简单:Redis的数据结构时专门设计的,而这些简单的数据结构的查找和操作的时间大部分复杂度都是O(1),因此性能比较高。多路复用和非阻塞IO:Redis使用I/O的多路复用功能来监听第一个Socket连接客
ZzRG
状态 统计 图床 • •