单一数据库缓存的完美解决方案
一 属性值
Cache 设置readVersion、updateVersion两个属性值
二 读操作
1 Cache不存在
读取readVersion,未读到设置为0,读取数据库后,更新Cache内容,设置readVersion为前面读到的readVersion。
2 Cache 存在
updateVersion不存在证明没有更新操作,直接获取Cache的内容。
updateVersion 存在则判断readVersion和updateVersion的值
readVersion和updateVersion相同,表示没有最新的更新操作,返回Cache的内容。
readVersion和updateVersion不同,表示有最新更新操作,读取updateVersion,取数据库后,更新Cache内容,设置readVersion为前面读取到的updateVersion。
三 写操作
更新数据库后,取到updateVersion,加1后保存。第一次设置updateVersion为1
保证更新数据库和更新updateVersion为同一个事务