AWS ElastiCache - 直写
与延迟加载类似,直写是另一种缓存策略,但与延迟加载不同的是,它不会等待命中或未命中。这是一种直接的策略,其中一旦将某些数据写入数据库,缓存和数据库之间的同步就会发生。
从下图中可以轻松理解。

直写的优势
缓存中的数据永远不会过时 − 由于每次将缓存中的数据写入数据库时都会更新,因此缓存中的数据始终是最新的。
写入惩罚与读取惩罚 −每次写入都涉及两次行程,一次写入缓存,一次写入数据库。
这会增加流程的延迟。也就是说,最终用户在更新数据时通常比检索数据时更能容忍延迟。人们有一种内在的感觉,即更新需要做更多的工作,因此需要更长的时间。
直写式的缺点
数据丢失 − 在启动新节点的情况下,无论是由于节点故障还是扩展,都会有丢失的数据,这些数据会一直丢失,直到在数据库中添加或更新。可以通过结合使用延迟加载和直写式来最大限度地减少这种情况。
缓存流失 − 由于大多数数据从未被读取,因此集群中可能有大量数据从未被读取。这是一种资源浪费。通过添加 TTL,您可以最大限度地减少浪费的空间,我们将在下一章中看到这一点。