大家好,我是砸锅。一个摸鱼八年的后端开发。熟悉 Go、Lua。今天和大家一起学习架构😊
缓存已经成为高并发高性能架构的一个关键组件。很多公司都在用 Redis 来搭建他们的缓存系统。在分布式架构下,一般都需要一个外部的缓存集群,内存要足够大,网络带宽也要好。缓存的好坏要看命中率,命中率到 80% 以上就算很高了。使用缓存提高性能,就是会有数据更新的延迟。缓存数据的时间周期也需要好好设计,太长太短都不好,过期期限不宜太短,过期期限不宜太长。使用缓存的时候,一般会使用 LRU 策略。
Write Behind Caching更新模式又叫Write Back,更新数据只更新缓存,不更新数据库,异步地批量更新数据库,可提高性能。但数据不是强一致性的,可能会丢失。在软件设计中要权衡强一致性和高性能、高可用和高性能的冲突。实现逻辑复杂,因为需要track有哪些数据被更新,需要刷到持久层上。操作系统的Write Back会在缓存需要失效的时候才会把它真正持久起来,又叫lazy write。
Read/Write Through更新模式是将更新数据库的操作由缓存自己代理了,应用认为后端是一个单一的存储,存储维护自己的Cache。Read Through在查询操作中更新缓存,缓存失效时由缓存服务自己加载数据,对应用方透明。Write Through在更新数据时,命中缓存则先更新缓存,再由Cache自己更新数据库。这是一个同步操作。相较于Cache Aside简化了应用程序的逻辑,但增加了存储服务逻辑复杂度。适用于读多写少、数据强一致性要求较高的场景。
此文章为3月Day27学习笔记,内容来源于极客时间《左耳听风》 这门课真的非常好,推荐大家看看