Since Redis 6支持多线程IO https://redislabs.com/blog/diving-into-redis-6/,在超过2个核心的机器上部署Redis有意义吗?它是否能够利用额外的核心,或者 2 个核心仍然是理想的选择(一个用于主线程,另一个用于处理 bgsave 和其他内务操作)?
同样,在 AWS ElastiCache 上使用具有 >2 个 vCPU 的实例类型是否有意义?
基于发行说明 https://redislabs.com/blog/diving-into-redis-6,我想是的。
这是来自那里的一条小信息:
尽管 Redis 在高性能方面享有盛誉,但其单线程架构在工程师中一直存在争议,他们想知道 Redis 是否可以更快。 Redis 6 开启了一个新时代:虽然它保留了核心单线程数据访问接口,但 I/O 现在是线程化的。
通过将读取和写入 I/O 套接字的时间委托给其他线程,Redis 进程可以将更多的周期用于操作、存储和检索数据,从而提高整体性能。此改进保留了以前版本的事务特征,因此您不必重新考虑您的应用程序即可利用增强的性能。同样,Redis 的单线程 DEL 命令现在可以配置为类似于自 Redis 版本 4 以来可用的多线程 UNLINK 命令。
局部变量的性能几乎总是无与伦比的,最后,即使像 Redis 这样高性能的数据库也会比从堆栈或堆访问某些内容慢得多。 Redis 6 为复杂的客户端库添加了一项新技术,以实现客户端缓存层以在您自己的进程中存储数据子集。此实现足够智能,可以管理对同一数据的多次更新,并尽可能保持数据同步,同时保留 Redis 的本地变量速度优势。
您还可以检查/比较它Redis 基准测试 https://redis.io/topics/benchmarks or memtier https://github.com/RedisLabs/memtier_benchmark用于您的实例/工作负载配置文件的工具。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)