我理解Redis列表,集合和散列
每种类型的优缺点是什么,以及集合的位置示例 在列表上使用,或在集合等上使用哈希
答案 0 :(得分:4)
你想要考虑的主要事情是你会要求它进行什么样的操作......这比表现还要好。因为,如果某个操作不可用,它将无法正常工作。
首先查看Redis commands documentation,并确保有适合的命令集。我在这里使用的大多数推理在通用编程中也是一样的。例如,为什么要在Python中使用字典与列表。
Redis命令文档通常具有操作的Big-O表示法。大多数单独的查找,插入等都是O(1)
,因此不同类型之间没有太大差异。我也没有发现每个存储空间方面的差异。
这里有很多其他原因,因为我很一般。这篇文章可能会扩展到书中的一章!这不是一个简单的问题。
<强>哈希:强> 如果您想按键获取值,则可以使用此选项。几乎像键值存储中的键值存储。此外,您可以通过按名称设置子参数(例如,使用键“地址”,“出生日期”,......)来执行“类”类似的事情。)
<强>列表:强> 基本上是没有钥匙的集合,它是一组东西,立即找到一个单独的东西并不是什么大不了的事。例如,您可能有一个用户参与的事务列表。
设置:强> 基本上是哈希,但没有价值。这是为了当你想知道“这件事是否在一套?”。与列表不同,集合需要花费一些时间来确定某些东西是否是成员。此外,与列表不同,集合中的项目是唯一的。使用集合,您还可以执行交叉点和其他设置。这不是你可以用Hashes做的事情。例如,您想通过union找到在意大利办事处(一套)购买东西的所有用户,以及在法国办事处(另一套)购买东西的所有用户。
排序集:与集合类似,但还有其他选项,包括查找项目的范围或排名。