Redis Sharding性能和o(1)get key的时间复杂度

时间:2017-11-19 15:43:22

标签: redis nosql in-memory-database stackexchange.redis

我需要一个简单的解释。

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

  2. 因此,我是否拥有1,000,000或1,000,000,000,000,000的密钥值对获得密钥的时间是相同的。

  3. 我现在的问题是

    我需要保留大约10亿个键值对,如果内存不是问题(意味着我假设我有一台具有足够内存的单个服务器来容纳那么多数据),是否有分片的优势?也就是说,将这个10亿个键值对分离到10个redis实例中是否有任何性能优势,每个实例持有1亿个记录,而不是只有一个拥有整个记录的redis实例?

    非常感谢您的预期回复

1 个答案:

答案 0 :(得分:2)

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