我们被要求使用redis在应用程序中实现缓存。应用程序应该在启动时具有清除缓存的逻辑并初始化它。 但是, redis实例可以由应用程序的多个实例共享。
e.g。应用 X 有两个实例 X0 和 X1 共享相同的redis实例。
问题: 对于多个实例,可能有一个实例在其他实例正在清除缓存时尝试初始化缓存。
两个问题
1)如何确保在缓存初始化时,其他实例不会清除它。
解决此问题的一种方法是在redis中维护一个标志,以检查它是否被清除或初始化。如果正在初始化缓存,请不要清除或重新启动缓存。
2)多个应用程序实例共享redis实例是一种好习惯吗?
答案 0 :(得分:0)
一般来说,分享redis并不是一个好主意。如果您只有有限数量的应用程序实例,那么最好为每个实例创建一个单独的Redis进程。 Redis是轻量级的,因此在同一服务器上的不同部分上运行的多个进程在实践中运行良好。
如果无法安装多个进程,则每个实例可以有一个数据库。 Redis默认允许16个数据库。然后,您可以单独刷新每个数据库。请记住,不鼓励redis中的数据库,并且它们已在redis集群中停止使用。