【发布时间】:2018-04-09 01:39:14
【问题描述】:
我们被要求在使用 redis 的应用程序中实现缓存。应用程序应具有在启动时清除缓存并对其进行初始化的逻辑。 但是,redis 实例可以由应用程序的多个实例共享。
例如应用程序 X 有两个实例 X0 和 X1 共享同一个 redis 实例。
问题: 对于多个实例,可能一个实例尝试初始化缓存,而另一个实例正在清除它。
两个问题
1) 如何确保缓存正在初始化,其他实例不会清除它。
解决这个问题的一种方法是在redis中维护一个标志来检查它是否正在被清除或初始化。如果缓存正在初始化,请不要清除或重新初始化它。
2) 多个应用实例共享 redis 实例是一种好习惯吗?
【问题讨论】: