gpt4 book ai didi

node.js - Redis 中用于 node.js 的 Multi-Tenancy

转载 作者:IT王子 更新时间:2023-10-29 06:03:51 24 4
gpt4 key购买 nike

我们有一个 Multi-Tenancy NodeJS 应用程序,我们现在正在为我们的一些数据添加一个缓存层。

我们的目标是将 Redis 缓存与 redis package 一起使用并且我们正在尝试检查支持 Multi-Tenancy 的选项,并牢记两个要点:

  1. 保护数据。
  2. 清除租户级别的旧数据。

到目前为止,我们的调查结果是我们可以为每个租户使用单独的 Redis 实例 - 这对我们来说不是一个好的解决方案。

我们发现的另一种选择是使用“tenant_id:”前缀为我们的键命名空间。此选项解决了第一点 - 数据现在是安全的,但我们还有第二点需要解决。

我们在这一点上的用例是,一个租户可以放置大量数据,这些数据将填满缓存并推出其他租户的数据。我们想在租户级别定义我们的 LRU,即 - 当新数据添加到缓存时,它只会驱逐最近使用的相同租户的数据。

有什么建议吗?

最佳答案

虽然使用逻辑/编号/共享数据库的选项确实存在,但您应该避免这样做。您的数据库不仅会共享相同的配置,因为 Redis 是单线程的,每个租户都会(可能)干扰其他人的操作并(最坏的情况)阻止他们。

您应该做的是为每个租户使用专用 Redis 进程。好消息是 Redis 非常轻量级,因此每个实例在资源方面的开销非常小。不太好的消息是,这种方法会使管理更加复杂。

如果您希望避免管理上的麻烦,我建议您研究一下使用托管 Redis 产品的选项。根据您的提供商,有些提供商允许免费创建多个专用实例。

免责声明:我在 Redis Labs 工作,Redis 实验室是 Redis 的发源地,也是解决方案的提供者,包括一个托管的 Redis,它的行为与我上面描述的一样(顺便说一句,正是为了这个目的)。

关于node.js - Redis 中用于 node.js 的 Multi-Tenancy ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45053355/

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