redis和大型视频网站的标签

时间:2011-10-09 10:51:42

标签: tags nosql redis

我的问题是关于标签和搜索,基于管/闪光灯 视频剪辑网站。

我想要使用Redis安排100,000张视频。

每个视频都有以下内容:

标题,长度,标签

我一直在添加以下

的剪辑
hset video:id1 title  "A funny clip"
hset video:id1 length "22 secs"
hset video:id1 tags   "funny,accident,cat"

hset video:id2 title  "Falling of a chair"
hset video:id2 length "33 secs"
hset video:id2 tags   "funny,chair,kids"

hset video:id3 title  "Pool party"
hset video:id3 length "17 secs"
hset video:id3 tags   "funny,pool,accident"

我现在该怎么办才能按标签搜索。

我希望能够搜索所有具有的剪辑 某些标签。

3 个答案:

答案 0 :(得分:3)

你走错了路。在redis中你需要反思。如果要搜索某个标记,则需要从标记到对象的映射,而不是从对象到标记的映射。在Redis中,您需要定义自己的索引!

因此,如果您希望能够搜索具有特定标记的所有视频,请为每个标记创建一个集合,并将带有该标记的视频ID添加到该集合中。

答案 1 :(得分:2)

最好的方法是为每个添加视频ID的标记创建一个列表

rpush funny id1 id2 id3

编辑:

您可以在此处找到有关如何搜索不完整标签的想法:

http://antirez.com/post/autocomplete-with-redis.html

答案 2 :(得分:0)

  

我现在该怎么办才能按标签搜索。

Redis不支持任何类型的临时数据查询。虽然有KYES命令允许您搜索具有特定模式的键,但它仅用于调试或类似操作,因为它的性能取决于数据库中的键数量。

但是,您可以为代码创建专用的集合结构,其中每个集合都包含分配给特定代码的视频ID集合。