缓存具有两种基本的写入办法:
直写式(Write Through):将数据同步写入缓存和后端存储设备。
回写式(Write Back)(也叫做后写式):首先,将数据写入缓存。然后,缓存会延缓将这些数据写入至后端存储设备,直到缓存块包含的数据即将被新的数据修正/更换。

回写式缓存是更加难以实现的,由于它须要跟踪必须覆盖的缓存位置,并且将它们标记为脏块,稍后才能将个中的数据写入至后端存储设备。只有当回收脏块的缓存空间时,脏块中的数据才会回写至后端存储设备,这种行为被称为
其他策略也有可能触发数据回写。客户端可能会大量修正缓存中的数据,然后会显式地关照缓存将数据回写至后端存储设备。
写入操作不会返回任何数据,因此有两种办法可以应对写入未命中(Write Miss)的情形:
写分配(Write Allocate):也叫做写时获取(Fetch On Write)。这种办法会将发生写入未命中的地址中的数据加载至缓存,然后实行写入命中(Write Hit)操作。通过这种办法,写入未命中就会类似于读取未命中。
无写分配(No Write Allocate):也叫做写不分配(Write No Allocate)或写附近(Write Around)。这种办法不会将发生写入未命中的地址中的数据加载至缓存,而是直接将这些数据写入至后端存储设备。通过这种办法,只有读取操作才会被缓存。
直写式策略和回写式策略都可以利用上述两种写入未命中策略,但是它们常日可以成对利用,如下所示:
回写式缓存会利用写分配策略,期望对相同的位置进行后续的写入操作(或读取操作),此时的数据已经缓存。读取和写入的流程,如下图所示:
回写式缓存的写分配策略
直写式缓存会利用无写分配策略。此处,后续的写入操作不会有任何性能改进,由于它们仍旧须要将数据直接写入至后端存储设备。读取和写入的流程,如下图所示:
直写式缓存的无写分配策略
除了缓存之外的其他实体也有可能会修正后端存储设备中的数据,这就导致缓存中的数据拷贝可能会过期或者迂腐。或者,当客户端更新缓存中的数据时,这些数据在其他缓存中的拷贝,也会变得迂腐。缓存管理器之间的通信协议能够担保多个缓存之间的数据同等性,这种协议称为缓存同等性协议。