如何解决Redis 6可以利用多核CPU吗?
自Redis 6 supports multi-threaded IO起,在具有2个以上内核的计算机上部署Redis是否有意义?它将能够利用附加内核还是仍然理想的2个内核(一个用于主线程,另一个用于处理bgsave和其他内部操作)?
类似地,在AWS ElastiCache上使用大于2个vcpu的实例类型有意义吗?
解决方法
我猜是基于release notes的。 这里有一些小信息:
尽管Redis因其高性能而享有盛誉,但其单线程体系结构一直引起工程师的争议,他们怀疑Redis是否可以更快。 Redis 6在一个新时代响起:尽管它保留了核心的单线程数据访问接口,但现在I / O已成为线程。
通过将读取和写入I / O套接字的时间委托给其他线程,Redis进程可以将更多的周期投入到操作,存储和检索数据中,从而提高了整体性能。这项改进保留了先前版本的事务特性,因此您无需重新思考应用程序即可利用性能的提高。同样,现在可以将Redis的单线程DEL命令配置为类似于Redis版本4以来可用的多线程UNLINK命令。
局部变量的性能几乎总是无与伦比的,最后,即使是像Redis这样高性能的数据库,其访问速度也比访问堆栈或堆中的数据慢得多。 Redis 6为复杂的客户端库添加了一项新技术,以实现客户端缓存层以在自己的进程中存储数据的子集。此实现足够聪明,可以管理对同一数据的多次更新,并使您的数据尽可能保持同步-同时保留Redis的优势以及局部变量的速度。
您还可以使用redis-benchmark或memtier线束来检查/比较实例/工作负载配置文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。