创建单个 Redis 实例前的注意事项

Consideration before creating a single Redis instance

我目前有一些不同的项目在不同的 redis 实例上工作(考虑示例,其中我有 3 个不同的 asp.net 应用程序,它们位于不同的服务器上,每个应用程序都有其 redis 服务器)。 我们被要求虚拟化并删除无用的实例,所以我想知道如果我只有一个 redis 服务器并且所有 3 asp.net 指向同一个 redis 实例会发生什么。

对于应用程序密钥我认为没有问题,我可以在自己的密钥前加上应用程序名称,例如"fi-agents","ga-agents",等等......但我想知道对于身份验证会话会发生什么?

据我所知read the Prefix is used as internal and it can't be used by final user to separate... it's just enought to use different Db

谢谢

一般而言,除非有真正令人信服的理由,否则您不希望在同一个数据库中混合使用不同的应用程序及其数据。是的,它最初确实降低了运营成本,但它很快就会恶化为扩展和性能噩梦。我相信这对任何数据库都是正确的。

特别是对于 Redis,技术上是的 - 您可以使用键前缀或 shared/numbered 数据库方法。我不确定 "auth" 会话是什么意思,但您可以对它们应用相同的方法。但你真的不应该......因为 Redis 是一个单线程进程,你最终可能会遇到其中一个应用程序阻塞其他两个的情况。由于 Redis 本身非常轻巧,只需启动专用服务器 - 每个应用程序一个 - 如果需要,甚至可以在同一个虚拟机中运行。您可以在此处阅读有关为什么不想选择共享方法的更多背景信息:https://redislabs.com/blog/benchmark-shared-vs-dedicated-redis-instances