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

时间:2017-03-30 19:49:35

标签: redis stackexchange.redis

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

enter image description here

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

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

3 个答案:

答案 0 :(得分:6)

不要这样做 - 分享很糟糕。每个环境旋转一个Redis实例,每个服务器的开销都可以忽略不计。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

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