Redis6能利用多核CPU吗?

tkqqtvp1  于 2021-06-08  发布在  Redis
关注(0)|答案(1)|浏览(414)

既然redis 6支持多线程io,那么在拥有2个以上内核的机器上部署redis有意义吗?它是否能够利用额外的内核,或者2个内核仍然是理想的(一个用于主线程,另一个用于处理bgsave和其他内务处理操作)?
类似地,在aws elasticache上使用示例类型>2vcpu有意义吗?

vecaoik1

vecaoik11#

根据发行说明,我想是的。这里有一个小信息:
尽管redis在高性能方面有着当之无愧的声誉,但它的单线程体系结构一直受到工程师们的争议,他们怀疑redis是否可以更快。Redis6开启了一个新时代:虽然它保留了一个核心的单线程数据访问接口,但i/o现在是线程化的。
通过将读写i/o套接字的时间委托给其他线程,redis进程可以将更多的周期用于操作、存储和检索数据,从而提高整体性能。这种改进保留了以前版本的事务特性,因此您不必重新考虑应用程序以利用提高的性能。类似地,redis的单线程del命令现在可以被配置为像多线程unlink命令一样工作,该命令从redis版本4开始就可用。
局部变量的性能几乎总是无与伦比的,最后,即使是像redis这样高性能的数据库也比从堆栈或堆中访问要慢得多。redis6为复杂的客户端库添加了一种新技术,以实现客户端缓存层,从而在您自己的进程中存储数据子集。这种实现非常聪明,可以管理同一数据的多个更新,并尽可能保持数据同步,同时保持redis的优势和局部变量的速度。
您还可以检查/比较它与redis benchmark或memtier harness的示例/工作负载配置文件。

相关问题