同一应用程序的多个实例共享redis实例

3
我们被要求在使用redis的应用程序中实现缓存。该应用程序应该有一个逻辑来在启动时清除缓存并初始化它。但是,redis实例可以由多个应用程序实例共享。
例如,应用程序X有两个实例X0和X1共享同一个redis实例。
问题:对于多个实例,可能会出现一个实例尝试在其他实例清除缓存时初始化缓存的情况。
两个问题:
1)如何确保在缓存正在初始化时,其他实例不会清除它。
解决此问题的一种方法是在redis中维护一个标志以检查是否正在清除或初始化缓存。如果正在初始化缓存,则不要清除或重新初始化它。
2)将redis实例共享给多个应用程序实例是否是一个好的实践?
1个回答

3
一般来说,共享Redis不是一个好主意。如果您只有有限数量的应用程序实例,最好为每个实例创建一个单独的Redis进程。Redis很轻量级,因此在同一服务器的不同部分运行多个进程在实践中效果很好。
如果您无法安装多个进程,则可以为每个实例设置1个数据库。Redis默认允许16个数据库。然后,您可以独立地刷新每个数据库。只需记住,在Redis中不鼓励使用数据库,并且在Redis集群中已停止使用它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接