【问题标题】:Something like a tag cache and querying it for suggesting them using Redis类似于标签缓存并查询它以使用 Redis 建议它们
【发布时间】:2013-10-04 16:16:04
【问题描述】:

就像 StackOverflow:当你提出问题时,你需要提供一些标签。

目前我正在查询关系数据库存储,但我相信 Redis 应该能够缓存标签建议。

例如,它会是这样的集合:

sadd tags:suggestions "c#" ".net" "redis"

现在有些用户在问一个问题,他/她可能会写“ne”,所以 Redis 缓存中有一些标签可能匹配整个部分标签名称:.net

我不知道如何与这样的tags:suggestions Redis 集合相交以获得“.net”。

或者我应该使用字符串而不是集合?

提前谢谢你!

注意:

对于那些问“到目前为止我已经尝试过什么”的人,请仔细检查问题:我不知道该怎么做,我只是在学习 Redis到目前为止我尝试过什么?阅读手册,使用 set 进行尝试,但我来到这里是因为我不知道我是否可以使用 Redis 实现这样的要求...

【问题讨论】:

  • @bicycle 我不知道该尝试什么,这就是我在这里的原因。我被屏蔽了,因为我认为我可以做一些过滤器。
  • @bicycle 顺便说一句,如果您再次检查问题...到目前为止我尝试了什么?使用一个集合...

标签: caching redis intersection


【解决方案1】:

谷歌搜索很多之后,我找到了一篇很好的帖子,内容符合我在 StackOverflow 上的要求:

总结...:

1。为标签创建键值对

sadd mysite:tags "stackoverflow" "stack-exchange" "question" "about-redis"

2。为每个可能的组合创建一个索引

是的,例如:

  • “s”
  • “圣”
  • “站”
  • ...等等

    sadd mysite:tags:index:s 1 2

    sadd mysite:tags:index:st 1 2

    sadd mysite:tags:index:sta 1 2

    sadd mysite:tags:index:stack 1 2

    sadd mysite:tags:index:stacko 1

...等等。

这是关于添加所有以sst...

开头的标签

3。使用 SORT 获取标签建议:

sort mysite:tags:index:s by nosort get tags:*

这将输出:

  • 堆栈溢出
  • 堆栈交换

或者... 排序 mysite:tags:index:stack- by nosort get tags:*

...将输出:

  • 堆栈交换

这似乎是一个很好的解决方案!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    相关资源
    最近更新 更多