【问题标题】:Shared redis instance by multiple instances of same application同一应用程序的多个实例共享redis实例
【发布时间】:2018-04-09 01:39:14
【问题描述】:

我们被要求在使用 redis 的应用程序中实现缓存。应用程序应具有在启动时清除缓存并对其进行初始化的逻辑。 但是,redis 实例可以由应用程序的多个实例共享。

例如应用程序 X 有两个实例 X0 和 X1 共享同一个 redis 实例。

问题: 对于多个实例,可能一个实例尝试初始化缓存,而另一个实例正在清除它。

两个问题

1) 如何确保缓存正在初始化,其他实例不会清除它。

解决这个问题的一种方法是在redis中维护一个标志来检查它是否正在被清除或初始化。如果缓存正在初始化,请不要清除或重新初始化它。

2) 多个应用实例共享 redis 实例是一种好习惯吗?

【问题讨论】:

    标签: caching redis


    【解决方案1】:

    一般来说共享redis并不是一个好主意。如果您只有有限数量的应用程序实例,最好为每个实例创建一个单独的 Redis 进程。 Redis 是轻量级的,因此在同一台服务器的不同部分上运行的多个进程在实践中运行良好。

    如果您无法安装多个进程,则可以为每个实例设置 1 个数据库。 Redis 默认允许 16 个数据库。然后,您可以独立刷新每个数据库。请记住,redis 中的数据库不鼓励使用,并且它们已在 redis 集群中停止使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多