redis集和示例

时间:2011-12-01 01:36:24

标签: redis set

现在已经使用了几个星期,我印象深刻;数量 我已经实现了,并且使用最小的时间节省了时间 一套命令很棒。

使用维基百科作为我的数据,我制作了一只小蜘蛛来抓住所有的数据 维基百科上的页面并下载它们..

我使用redis来记录下载了哪些页面, 防止重复。

在下载每个页面时,我执行:

sadd wiki pagename

用以下内容检查每个页面是否存在:

sismember wiki pagename
哇,抱歉过度解释..我的问题是,以下是做什么的 命令可以,何时可能会被使用或有用。

sdiff
sinter
sunion

sdiff =减去多组..

2 个答案:

答案 0 :(得分:0)

我认为sdiffsintersunion可以通过redis commands文档中的示例进行合理解释。这些是经典的group数学运算,在需要在多个集合之间操作数据的情况下非常有用,这些集合可能包含相似或相同的项目。

答案 1 :(得分:0)

假设你有一个书店,你想弄清楚哪些类型是相关的,这样你就可以为相关类型的书籍提出建议。不是现在经典的#34;购买此产品的顾客也买了X"但更像是向那些对科幻小说感兴趣的人推荐幻想书。比如说。

这样做的一种方法是为每个客户分配一个ID,并为每个购买的书籍将该ID放在代表一个类型的集合中。如果您想知道哪些类型相关,那么您可以使用set操作来查找有趣的指标。其中一个是雅加德指数,交叉点的大小除以联合的大小 - 换句话说,从每个类型购买至少一本书的客户数量除以拥有大量金额的客户数量任何类型的书。较低的索引意味着相似性较低,较高的索引意味着较近的相似性零指数意味着没有人从两种类型中购买书籍,而一个指数意味着购买一种类型书籍的人也在另一种类型中购买了一本书。

您还可以使用设定差异来计算在一种类型中购买书籍的客户数量,而这种类型在另一种类型中没有购买书籍(如果两种类型相似,或许建议他们应该尝试来自其他类型的书。)