前言
Redis 官方在 2020 年 5 月正式推出 6.0 版本,提供很多振奋人心的新特性,所以备受关注。
提供了啥特性呀?知道了我能加薪么?
主要特性如下:
- 多线程处理网络 IO;
- 客户端缓存;
- 细粒度权限控制(ACL);
- RESP3 协议的使用;
- 用于复制的 RDB 文件不在有用,将立刻被删除;
- RDB 文件加载速度更快;
其中备受关注的就是「多线程模型 + 客户端缓存」,我们只有掌握了新特性原理,才能判断什么时候使用 6.0 版本,如何用的更好更快,不踩坑。
本篇先从 Redis 多线程模型开始,至于客户端缓存、等且听下回分解。
最后,点击下方卡片关注「码哥字节」能加薪。
Redis 6.0 之前为什么不使用多线程?
官方答复:
- 使用 Redis 时,几乎不存在 CPU 成为瓶颈的情况, Redis 主要受限于内存和网络。
- 在一个普通的 Linux 系统上,Redis 通过使用pipelining 每秒可以处理 100 万个请求,所以如果应用程序主要使用 O(N) 或O(log(N)) 的命令,它几乎不会占用太多 CPU。
- 使用了单线程后,可维护性高。多线程模型虽然在某些方面表现优异,但是它却引入了程序执行顺序的不确定性,带来了并发读写的一系列问题,增加了系统复杂度、同时可能存在线程切换、甚至加锁解锁、死锁造成的性能损耗。
Red

Redis 6.0引入多线程处理网络IO以提高性能,但命令执行仍保持单线程,避免并发控制复杂性。主线程与IO线程协作,主线程负责命令执行,IO线程处理网络读写。开启多线程需配置`io-threads-do-reads yes`,线程数推荐不超过核数。
最低0.47元/天 解锁文章
378

被折叠的 条评论
为什么被折叠?



