导读 写入缓存策略主要有以下几种:Cache Aside(旁路缓存):先更新数据库中的数据,再删除缓存中的数据。如果读取的数据命中了缓存,则直接返...
写入缓存策略主要有以下几种:
Cache Aside(旁路缓存):先更新数据库中的数据,再删除缓存中的数据。如果读取的数据命中了缓存,则直接返回数据;如果读取的数据没有命中缓存,则从数据库中读取数据,然后将数据写入到缓存,并且返回给用户。这种策略下,写策略的步骤的顺序不能倒过来,即不能先删除缓存再更新数据库,原因是在「读+写」并发的时候,会出现缓存和数据库的数据不一致性的问题。
Read/Write Through(读穿 / 写穿):原则是应用程序只和缓存交互,不再和数据库交互,而是由缓存和数据库交互,相当于更新数据库的操作由缓存自己代理了。这种策略下,更新数据的时候,先查询要写入的数据在缓存中是否已经存在:如果缓存中数据已经存在,则更新缓存中的数据,并且由缓存组件同步更新到数据库中,然后缓存组件告知应用程序更新完成。如果缓存中数据不存在,直接更新数据库,然后返回。
Write Back(写回):在更新数据的时候,只更新缓存,同时将缓存数据设置为脏的,然后立马返回,并不会更新数据库。对于数据库的更新,会通过批量异步更新的方式进行。
以上各种策略有各自的使用场景和优缺点,需要根据具体的业务需求和场景来选择合适的策略。