【问题标题】:Can we take join in Redis?我们可以加入 Redis 吗?
【发布时间】:2013-05-03 12:02:32
【问题描述】:

我有一个排序集,SortedSet1 = "token"=>"score"

我有一个列表,List1 = "token"=>"username"

现在,我想要一个带有 JSON 字符串值的记录,例如-

e.g> "token"=>"{name:username, score: score}"

这样我就可以广播排行榜了。

如何加入这两组?或者有没有机会加入两个列表或两个集合?

【问题讨论】:

  • 或者像合并相同键上的列表之类的东西?
  • name 在哪里出现,List1 看起来像 hash 而不是 list

标签: javascript node.js redis


【解决方案1】:

redis 只是一个键/值存储。你不能做类似 sql-joins 的事情。您需要自己执行此操作(使用 underscore.jslodash 进行合并)。

redis 中还有一种叫做 LUA 脚本的东西。也许这对你有用,但我从未使用过它,所以我可能无法帮助你:http://redis.io/commands/eval

【讨论】:

  • 非常感谢您确认加入在此处不起作用。我正在使用 node.js,而且我是这个 javascript 的新手,那么我应该从 underscore.js 和 lodash 中选择什么?
  • 我会选择 lodash,它速度更快,功能更多
  • 一些键/值存储数据库至少部分支持连接操作。例如 BerkeleyDB 或 RethinkDB。
【解决方案2】:

这是我在 Redis 中进行联接的方法。 https://www.reddit.com/r/redis/comments/5iz0gi/joins_in_redis/ 这个概念是使用排序集作为索引,然后提取并在分数上做交集。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 2020-10-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多