Redis 分片性能和获取密钥的 o(1) 时间复杂度

Redis Sharding performance and o(1) time complexity for get key

关于这个,我需要一个简单的解释。

  1. Redis声称获取key的时间复杂度为o(1)

  2. 因此,无论我的键值对是 1,000,000 还是 1,000,000,000,000,000,获取密钥的时间都是相同的。

我现在的问题是

我需要保存大约 10 亿个键值对,如果内存不是问题(意思是假设我有一个服务器有足够的内存来保存那么多数据),分片有什么优势吗?也就是说,将这 10 亿个键值对分离到 10 个 redis 实例中,每个实例保存 1 亿条记录,与仅保存整个记录的单个 redis 实例相比,会有任何性能优势吗?

非常感谢您期待的回复

分片在性能方面有明显的优势,因为它可以使用多个 CPU 核心(理想情况下,每个分片一个)。由于(大部分)是单线程的,单个 Redis 实例只能使用一个核心(甚至更多)。分片有效地增加了部署的并行性,从而对性能做出了积极贡献(但增加了管理开销)。