gpt4 book ai didi

redis - 在一个命令中使用来自多个 redis 数据库的数据

转载 作者:IT王子 更新时间:2023-10-29 06:08:44 25 4
gpt4 key购买 nike

在我当前的项目中,我出于各种目的积极使用 Redis。当前应用有2个redis数据库:

  1. 第一个包含绝对临时数据:有多少用户在线,谁在线,各种管理员的计数器。此数据库在应用程序通过启动脚本启动之前被清除。
  2. 第二个数据库用于持久数据,例如用户的评分、用户的 friend 等。

一切似乎都是正确的,每个人都很开心。

但是,当我开始在我的应用程序中实现一个新功能时,我发现我需要将一组用户的 friend 与一组在线用户相交。这些集合存储在不同的 redis 数据库中,我还没有发现任何可能在 redis 中执行此任务,除了更改应用程序架构并将所有键移动到一个命名空间(数据库)。

实际上有什么方法可以使用来自多个数据库的数据在 redis 中执行某些命令吗?或者也许我的 redis 用例是错误的,我必须执行系统架构修复?

最佳答案

没有。有一个命令可以轻松地将 key 移动到另一个数据库:

http://redis.io/commands/move

如果将所有键移至一个数据库,请确保没有任何键冲突!您可以为临时数据库中的键添加后缀或前缀以确保绝对确定。如果键已存在于目标数据库中,则 MOVE 将不执行任何操作。因此,请确保您对“0”回复采取行动

使用多个数据库绝对不是一个好主意:

引用 Salvatore Sanfilippo(redis 的创建者)的话:

I understand how this can be useful, but unfortunately I consider Redis multiple database errors my worst decision in Redis design at all... without any kind of real gain, it makes the internals a lot more complex. The reality is that databases don't scale well for a number of reason, like active expire of keys and VM. If the DB selection can be performed with a string I can see this feature being used as a scalable O(1) dictionary layer, that instead it is not.

With DB numbers, with a default of a few DBs, we are communication better what this feature is and how can be used I think. I hope that at some point we can drop the multiple DBs support at all, but I think it is probably too late as there is a number of people relying on this feature for their work.

https://groups.google.com/forum/#!msg/redis-db/vS5wX8X4Cjg/8ounBXitG4sJ

关于redis - 在一个命令中使用来自多个 redis 数据库的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13456908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com