【发布时间】:2015-04-14 11:04:41
【问题描述】:
我在内存中有一个已经排序的大小 (N) 的集合,并且想将其转储到 redis 中,如果先插入头部或尾部,是否可以在 O(N) 中完成?或者没关系,插入will be O(log(N!)) ~ O(N log(N))
有关更多详细信息,redis 排序集是使用哈希图和跳过列表(用于排序)实现的。
编辑:这个问题一直没有答案,或者至少答案对我来说有点模棱两可:Redis: Is ZADD better than O(logN) when the inserted element is at the beginning or end?
【问题讨论】:
-
IMO 没关系
-
我不熟悉skiplists,但对于其他有序的数据结构(如树),如果您以特定顺序插入,您确实会得到一个log(N)...并且来自wikipedia article on skip -lists 似乎确实有可能获得 O(N) 但 REDIS 实现是否相同?
-
有趣的问题...我将尝试进行基准测试,看看是否可以发现任何经验差异。另一种方法是阅读源代码:github.com/antirez/redis :)
-
我尝试阅读源代码,但 20 分钟后绝望了……抱歉。不过没有考虑过基准测试。
-
现在有了赏金,我真的很有动力:P
标签: redis time-complexity sortedset skip-lists