为什么 redis 删除单个字符串的 key 时间复杂度是 1?

2017-05-08 22:07:42 +08:00
 woshixiaohao1982

DEL DEL key [key ...]

删除给定的一个或多个 key。

不存在的 key 会被忽略。

可用版本:

= 1.0.0 时间复杂度: O(N),N 为被删除的 key 的数量。 删除单个字符串类型的 key,时间复杂度为 O(1)。 删除单个列表、集合、有序集合或哈希表类型的 key,时间复杂度为 O(M),M 为以上数据结构内的元素数量。

据我所知,二分查找的时间复杂度是 O(lgN) hashmap 是 O(M)取决于头接链表上的元素。

1992 次点击
所在节点    问与答
3 条回复
woshixiaohao1982
2017-05-08 22:08:10 +08:00
为什么 redis 删除字符串的 key 时间复杂度是 O(1)
msg7086
2017-05-09 01:14:58 +08:00
所以如果 Hashtable 空间足够大的话不就是 O(1)了。大 O 是表示数量级的啊,有少量哈希冲突不影响 O(1)数量级。
woshixiaohao1982
2017-05-09 05:08:34 +08:00
@msg7086 👌🏻理解了,少量的冲突,就当做是 O(1)的时间复杂度

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/359976

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX