
读写缓存:增删改在缓存中进行,并采取相应的回写策略,同步数据到数据库中
读写缓存是指增删改在缓存中进行,并采取相应的回写策略,同步数据到数据库中。其中回写策略有两种:
就一致性而言,同步回写显然是一致性比较强的,但是同步回写这里同样会遇到时序的问题。
如果先更新缓存后更新数据库可能遇到更新数据库失败的问题,就会造成数据的不一致。
解决方法:

并发读写情况下,没有太大问题,针对user1来说,读时还没更新完数据库,这时数据存在短暂的不一致;但是对user2来讲并无感知。

并发写写情况下,user1更新完缓存后还未更新数据库,结果user2率先完成两个步骤,user1再次更新数据库,导致缓存中的值和数据库中的值不一致,会对业务造成较大影响。
解决方案:

先更新数据库后更新缓存失败的情况,会导致两边数据存在不一致,后续请求都会读取到旧的数据,对业务造成影响。
解决方案:

并发读写时,user1还未更新缓存,其他请求就已经读取到了旧值,会导致一定时间内数据不一致,对业务有短暂的影响。
解决方案:

此种情况和先更新缓存再更新数据库的写写场景类似,会造成数据不一致,都会对业务造成较大影响。
解决方案:

现实业务错综复杂,各种状况都有可能发生,无论只读缓存和读写缓存,分析的关键在于穷尽所有可能发生的情况,并仔细考虑其应对策略。
一般来说,选定缓存方案的步骤如下:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。