java架构师培训- Redis6.0引入多线程的好处

新版本的Redis6.0于5月初发布,我们可以清楚地发现,新版本的Redis6.0引入了多线程。我相信每个人都必须非常好奇,Redis6.0中多线程的好处是什么?让我们分析一下一对一介绍多线程的许多好处〜

 java架构师培训

1、解决单线程的局限性

我们都知道Redis之前没有引入多线程是因为单线程的使用具有很高的可维护性,这与多线程系统的复杂性增加以及各种问题容易造成的性能损失不同。但是,随着业务场景越来越复杂,一些公司动turn动transaction几亿的交易量,因此需要更高的QPS。旧版本的Redis服务器可以处理80,000至100,000QPS,这是Redis处理的限制。常见的解决方案是在分布式体系结构中对数据进行分区并使用多个服务器,但是此解决方案具有很大的缺点,例如,要管理的Redis服务器过多,维护成本高;有些适用于单个Redis服务器。命令不适用于数据分区;数据分区无法解决热读/写问题;数据偏斜,重新分配和放大/缩小变得更加复杂,等等。此外,Redis的多线程部分仅用于处理网络数据的读写和协议分析,并且执行命令仍在单个线程中顺序执行。因此,我们无需考虑控制密钥,Lua,事务,LPUSH/LPOP等的并发性和线程安全性问题。

2、突破Redis自身瓶颈

(1)分摊Redis同步IO读写负荷

因为读写网络的read/write系统调用占用了Redis执行期间大部分CPU时间,瓶颈主要在于网络的IO消耗,优化主要有两个方向:提高网络IO性能,典型的实现比如使用DPDK来替代内核网络栈的方式;使用多线程充分利用多核,典型的实现比如Memcached。因此,Redis6.0引入多线程一下子就分摊了Redis同步IO读写负荷。

(2)充分利用服务器CPU资源

议栈优化的这种方式跟Redis关系不大,支持多线程是一种最有效最便捷的操作方式。所以总结起来,Redis支持多线程主要就是因为可以充分利用服务器CPU资源,目前主线程只能利用一个核。

推荐阅读:java架构师培训:java最佳测试框架JBehave的基本介绍

如果你想了解更多关于java架构师的专业知识,可以加入JAVA架构师交流群:1160405674,里面都是同行,有资源分享包括但不限于(分布式架构、高可扩展、高性能、高并 发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、Mycat、Netty、Kafka、Mysql 、Zookeeper、Tomcat、Docker、Dubbo、Nginx)。欢迎一到五年的工程师加入,合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值