Redis6 终于还是迎来了多线程版本!
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Redis6 终于还是迎来了多线程版本!,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1989字,纯文字阅读大概需要3分钟。
内容图文
![Redis6 终于还是迎来了多线程版本!](/upload/InfoBanner/zyjiaocheng/862/bd8648e494784b16b030586fa1e8221d.jpg)
今天是 5 月 3 号,五一假期已经过半,相信不少人假期余额已经不足了!昨天 Redis 6.0 版本正式发布,Redis 终于还是迎来了多线程!
Redis 6.0 版本,本来是预计在 2019 年底发布,可是由于改动太大,6.0.1 的正式版本直到昨天才正式推出。
Redis 6.0 版本的更新主要有 5 个部分。分别是:Redis 6.0-RC1、Redis 6.0-RC2、Redis 6.0-RC3、Redis 6.0-RC4、Redis 6.0.0 GA。
细节部分,根据我的统计,新功能特性加上修复的 Bug,大大小小超过 60 个。
其中最能引起大家轰动的功能应该是多线程 IO 功能。其实 Redis 自发布以来,并不是一个单线程程序。严格意义上来讲,Redis 并不是单线程。它也有后台线程在工作,处理一些较为缓慢的操作,例如无用连接的释放、大 key 的删除等等。
但是客户端命令的请求获取 (socket 读)、解析、执行、内容返回 (socket 写) 等等都是由一个线程处理,所有操作是一个个挨着串行执行的 (主线程),这也是 Redis 有 “单线程” 定义的来源。
单线程机制使得 Redis 内部实现的复杂度大大降低,Hash 的惰性 Rehash、Lpush 等等 “线程不安全” 的命令都可以无锁进行。
但是这套机制也使得 Redis 的 QPS 难以更上一层楼。Redis 本身的数据结构设计,内存管理已经做得接近尽善尽美。要 Redis 单机性能进一步提升,引入多线程并发处理任务是最直观的方案之一,和 memcached 对齐。
于是,Redis 的多线程版本,早就引起了广泛的讨论。
多线程特性在社区也被反复提了很久后,Redis 的作者 antirez 终于在 Redis 6 加入多线程。
因为读写网络的 read/write 系统调用在 Redis 执行期间占用了大部分 CPU 时间,如果把网络读写做成多线程的方式对性能会有很大提升。现在已经实现了第一版,write side 即回复客户端这部分已经完成了,并且去掉了主线程和 IO线程之间的互斥锁,采用 busy loop 的形式来等待 io 线程工作结束,这部分能够有 50% 的性能提升。
目前已经有国外网友针对单线程和多线程版本的 Redis 进行了性能测试。
从上图中可以看到,多线程的优势还是非常的明细,几乎有翻倍的提升。
除了多线程以外,本次升级在性能,协议,权限控制方面都有较大的改进。还是希望大家充分测试过一直在进行升级,以免影响到大家的生产系统!另外,值得一提的是,Redis 的执行命令操作内存的仍然是个单线程!
关于 Redis 6 版本的更多细节,推荐大家阅读:https://raw.githubusercontent.com/antirez/redis/6.0/00-RELEASENOTES。
内容总结
以上是互联网集市为您收集整理的Redis6 终于还是迎来了多线程版本!全部内容,希望文章能够帮你解决Redis6 终于还是迎来了多线程版本!所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。