redis集合和示例

redis集合和示例,redis,set,Redis,Set,已经用了几个星期了,我印象深刻;金额 我已经实现了这一目标,并且仅通过使用最小的 这套命令很棒 使用维基百科作为我的数据,我制作了一个小蜘蛛来抓取所有的信息 下载维基百科上的网页 我使用redis只需记录下载的页面, 防止重复 在下载每个页面时,我执行: sadd wiki pagename 并检查每一页是否存在: sismember wiki pagename 哇,对不起,解释得太多了。。我的问题是,以下几点是什么 命令确实存在,何时可能使用或有用 sdiff sinter sunion

已经用了几个星期了,我印象深刻;金额 我已经实现了这一目标,并且仅通过使用最小的 这套命令很棒

使用维基百科作为我的数据,我制作了一个小蜘蛛来抓取所有的信息 下载维基百科上的网页

我使用redis只需记录下载的页面, 防止重复

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

sadd wiki pagename
并检查每一页是否存在:

sismember wiki pagename
哇,对不起,解释得太多了。。我的问题是,以下几点是什么 命令确实存在,何时可能使用或有用

sdiff
sinter
sunion

sdiff=减去多个集合

我认为,redis文档中的示例合理地解释了这一点。这些是经典的数学运算,在各种情况下都很有用,在这些情况下,您需要在多个可能由相似或相同项目组成的集合中操作数据。

假设您有一家书店,您想找出哪些类型的书是相关的,这样您就可以为相关类型的书提供建议。不完全是现在经典的“买了这个的顾客也买了X”,但更像是向对科幻感兴趣的人推荐幻想书

实现这一点的一种方法是为每个客户分配一个ID,并为每本购买的书将该ID放入表示一种类型的集合中。如果您想知道哪些类型是相关的,那么可以使用集合操作来查找有趣的度量。其中一个是Jacard索引,交叉点的大小除以联盟的大小——换句话说,每种类型至少购买过一本书的客户数量除以购买过任何一种类型书籍的客户数量。索引越低,相似度越低;索引越高,相似度越近。指数为零意味着没有人买过两种类型的书,指数为一意味着买了一种类型书的人也买了另一种类型的书

您还可以使用设置差异来计算购买一种类型书籍而不购买另一种类型书籍的客户数量(如果这两种类型的书籍相似,可能会建议他们尝试另一种类型的书籍)