欧姆& Redis:何时使用集合、列表或集合?
使用 Ohm & 时,集合与集合或列表有什么区别?雷迪斯?
几个 Ohm 示例使用列表而不是集合(请参阅列表文档本身):
class Post < Ohm::Model
list :comments, Comment
end
class Comment < Ohm::Model
end
选择这种设计的理由是什么?
What is the difference between a collection and a set or list when using Ohm & Redis?
Several of the Ohm examples use a list rather than a collection (see the list doc itself):
class Post < Ohm::Model
list :comments, Comment
end
class Comment < Ohm::Model
end
What is the rationale for this design choice?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
只是为了扩展 Ariejan 的答案。
列表 - 已排序。类似于 Ruby 中的数组。用于队列和保持项目有序。
集合 - 无序列表。它的行为类似于 Ruby 中的数组,但针对更快的查找进行了优化。
集合 - 与引用结合使用,它提供了一种简单的表示关联的方法。
本质上,集合和引用是处理关联的便捷方法。所以这:
是以下内容的快捷方式:
为了回答您关于设计选择的基本原理的原始问题 - 引入集合和引用来提供用于表示关联的简单 api。
Just to expand on Ariejan's answer.
List - ordered. Similar to an Array in Ruby. Used for queues and keeping items ordered.
Set - an unordered list. It behaves similar to an Array in Ruby but is optimized for faster lookups.
Collection - used in conjunction with reference, it provides a simple way of representing associations.
In essence, collections and references are convenience methods for dealing with associations. So this:
is a shortcut for the following:
To answer you original question about the rationale for the design choice - collections and references were introduced to provide a simple api for representing associations.
列表 - 元素的有序列表。当您请求整个列表时,您将获得按照您将其放入列表中的方式排序的项目。
集合 - 元素的无序集合。当您请求集合时,项目可能会以随机顺序出现(例如无序)。**
在您的示例中,注释是有序的。
** 我知道随机与无序不同,但它确实说明了这一点。
List - ordered list of elements. When you request the entire list, you get the items ordered the way you put them in the list.
Collection - unordered collection of elements. When you request the collection, items may appear in random order (e.g. unordered).**
In your example, comments are ordered.
** I know that random is not the same as unordered, but it does illustrate the point.