【发布时间】:2011-10-12 21:13:52
【问题描述】:
我了解 Redis 列表、集合和哈希
每种类型的优缺点是什么,以及集合的位置示例 在列表上使用,或者在集合上使用散列等
【问题讨论】:
标签: redis
我了解 Redis 列表、集合和哈希
每种类型的优缺点是什么,以及集合的位置示例 在列表上使用,或者在集合上使用散列等
【问题讨论】:
标签: redis
您要考虑的主要问题是您将要求它进行什么样的操作...这比性能更重要。因为,如果一个操作不可用,它就不会起作用。
首先查看Redis commands documentation,并确保有可用的命令集供您使用。我在这里使用的大部分推理在通用编程中也是相同的。例如,为什么你会在 Python 中使用字典与列表。
Redis 命令文档通常具有用于操作的 Big-O 表示法。大多数单独的查找、插入等都是O(1),因此类型之间没有太大区别。在存储空间方面,我也没有发现太大差异。
这里还有很多其他原因,因为我比较笼统。这篇文章可能会扩展到一本书的一章!这不是一个简单的问题。
哈希: 这是为了如果您想通过键获取值。几乎就像键值存储中的键值存储。此外,您可以通过按名称设置子参数(例如,使用“地址”、“出生日期”等键)来做类似“类”的事情
列表: 基本上是一个没有钥匙的集合,它是一组东西,立即找到一个人并不是什么大不了的事。例如,您可能有一个用户参与的交易列表。
设置: 基本上是一个哈希,但没有价值。这是为了当您想知道“这东西是否在集合中?”时。与列表不同,集合需要花费恒定的时间来确定某物是否是成员。此外,与列表不同,集合中的项目是唯一的。使用集合,您还可以做交叉点和其他集合的东西。这不是你可以用哈希做的事情。例如,您想通过union 查找在您的意大利办事处购买商品的所有用户(一组),以及在您的法国办事处购买商品的所有用户(另一组)。
Sorted Sets:类似于集合,但有额外的选项涉及查找项目的范围或等级。
【讨论】: