分享一下在多个服务器下缓存导致数据不同步的解决方案

分享一下在多个服务器下缓存导致数据不同步的解决方案

先简单介绍一下Background:
目前有多台服务器同时Run着同一个Project,用着同一个Database,但是不同Server之间都会存在服务器缓存Cache,若数据库已经更新,但是不及时Refresh cache,数据则会表现不同步,这是个磨人的大问题。

** 那么下面来分享一下觉得比较好的解决办法**

第一步,创建对象监听cache变化

分享一下在多个服务器下缓存导致数据不同步的解决方案_第1张图片
首先呢,我们每一个cache用一个txt文件给他监视着,txt文件里面只存一个最近更新的时间,若请求刷新cache,则更新txt里面的时间。

第二步,数据库记录所有服务器地址

很简单的一步,用一个Table,记录下项目所在的服务器IP地址.

第三部,消息通知的Api,实时更新cache

分享一下在多个服务器下缓存导致数据不同步的解决方案_第2张图片
简单的写一个api,作用是告诉各个服务器,这个cache需要更新,请重新Refesh cache,那么这个服务器会先把cache对应的txt先删掉,下次获取cache的时候就会重新进行获取,以致于时刻拿着最新的数据。

你可能感兴趣的:(Cache,缓存,后端)