分布式数据库缓存的完美解决方案

分布式数据库缓存的完美解决方案

一 属性值

数据库的每张表结构 设置updateTime字段

Cache 设置readMapUpdateTime<表名,updateTime>,updateMapUpdateTime<表名,updateTime>属性值

readMapUpdateTime、updateMapUpdateTime均以表名为关键字,value为表的updateTime

 读操作

1 Cache不存在

 读取数据库后,更新Cache内容,设置readMapUpdateTime为本次操作数据库涉及到表的更新时间

2 Cache 存在

扫描二维码关注公众号,回复: 2470834 查看本文章

 updateMapUpdateTime不存在证明没有更新操作,直接获取Cache的内容。

 updateMapUpdateTime存在则判断readMapUpdateTimeupdateMapUpdateTime的值

   readMapUpdateTimeupdateMapUpdateTime的hash相同,表示没有最新的更新操作,返回Cache的内容。

   readMapUpdateTimeupdateMapUpdateTime的hash不同,表示有最新更新操作,取数据库后,更新Cache内容,设置readMapUpdateTime为本次操作数据库涉及到表的更新时间

三 写操作

更新数据库后,取到本次操作数据库涉及到表的更新时间,保存到updateMapUpdateTime

保证更新数据库和更新updateMapUpdateTime为同一个事务

猜你喜欢

转载自blog.csdn.net/gamezouni/article/details/78391429
今日推荐