类似标签缓存的东西,并查询它以使用 Redis 推荐它们 [英] Something like a tag cache and querying it for suggesting them using Redis

查看:28
本文介绍了类似标签缓存的东西,并查询它以使用 Redis 推荐它们的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这就像 StackOverflow:当您提出问题时,您需要提供一些标签.

It would be like StackOverflow: when you ask a question you need to provide some tags.

目前我正在查询关系数据库存储,但我认为 Redis 应该可以缓存标签建议.

Currently I'm querying the relational database store, but I believe that Redis should make sense in order to cache tag suggestions.

例如,这将是一个这样的集合:

For example, it would be a set like this:

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

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

Now some user is asking a question and he/she may write "ne" so there's some tag in the Redis cache that may match the whole partial tag name: .net.

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

I can't figure out how I would intersect such tags:suggestions Redis set in order to get ".net".

还是应该使用字符串而不是集合?

Or should I use a string instead of a set?

先谢谢你!

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

For those asking "what I've tried so far", please double-check the question: I can't figure out what to do, I'm just learning Redis. What I've tried so far? Reading the manual, trying it using a set, but I came here because I don't know if I can implement such requirement with Redis...

推荐答案

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

After googling a lot, I found a good post about something that fits what I was asking for here at StackOverflow:

总结...:

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

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

是的,例如:

  • "s"
  • st"
  • 斯塔"
  • ...等等

  • "s"
  • "st"
  • "sta"
  • ... and so on

sadd mysite:tags:index:s 1 2

sadd mysite:tags:index:s 1 2

sadd mysite:tags:index:st 1 2

sadd mysite:tags:index:st 1 2

sadd mysite:tags:index:sta 1 2

sadd mysite:tags:index:sta 1 2

sadd mysite:tags:index:stack 1 2

sadd mysite:tags:index:stack 1 2

sadd mysite:tags:index:stacko 1

sadd mysite:tags:index:stacko 1

...等等.

这是关于添加所有以sst...开头的标签

It's about adding all tags that start with s, st...

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

这将输出:

  • stackoverflow
  • 堆栈交换

或者...排序 mysite:tags:index:stack- 通过 nosort 获取标签:*

Or... sort mysite:tags:index:stack- by nosort get tags:*

...将输出:

  • 堆栈交换

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

It seems to be a good solution!

这篇关于类似标签缓存的东西,并查询它以使用 Redis 推荐它们的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆