两个应用共享一个 Redis。如何防止缓存冲突?

Two apps share one Redis. How to prevent cache collisions?

应用程序的两个不同版本(调试和发布)共享同一个 Redis 实例。 Debug 和 Release 都具有相同的源代码,因此存储在 Redis 中的缓存密钥相同。

因此,当 Debug redis.StringSet(key1, value1) Release 可以很容易地覆盖 key1 或读取不正确的值(因为它应该有自己的 key1)。

有没有办法避免这种干扰?

不要这样做 - 共享是不好的。每个环境旋转一个 Redis 实例,每个服务器的开销可以忽略不计。

在同一个Redis 实例中使用两个数据库。 SELECT 指令允许您选择要使用的实例。 数据库的编号可以通过环境变量提供给您的应用程序,因此应用程序的代码对于两个应用程序实例保持不变。

另一种方法是为您的密钥提供通用的命名模式(前缀),并在 属性 文件中配置前缀。

您可以轻松地在不同的环境中使用不同的 属性 文件。