他来了,支持多线程的Redis6.0他来了!
来源:https://www.cnblogs.com/mr-wuxiansheng/p/12884356.html 作者:Mr_伍先生 本文总结下来主要以下几点: 虽然支持多线程,但默认不开启 配置线程数要小于CPU数 虽然开了多线程,但其实还是单线程处理逻辑,不用担心线程安全问题 多线程主要解决I/O读写瓶颈问题,针对业务量达到亿级的应用,常规项目没有必要使用 Redis 6.0 之前的版本真的是单线程吗? Redis 在处理客户端的请求时,包括获取(Socket 读)、解析、执行、内容返回(Socket 写)等都由一个顺序串行的主线程处理,这就是所谓的“单线程”。 但如果严格来讲从 Redis 4.0 之后并不是单线程,除了主线程外,它也有后台线程在处理一些较为缓慢的操作,例如清理脏数据、无用连接的释放、大 Key 的删除等等。 Redis 6.0 之前为什么一直不使用多线程? 官方曾做过类似问题的回复:使用 Redis 时,几乎不存在 CPU 成为瓶颈的情况, Redis 主要受限于内存和网络。 例如在一个普通的 Linux 系统上,Redis 通过使用 Pipelining 每秒可以处理 100 万个请求,所以如果应用程序主要使用 O(N) 或 O(log(N)) 的命令,它几乎不会占用太多 CPU。 使用了单线程后,可维护性高。多线程模型虽然在某些方面表现优异