Skip to content

Latest commit

 

History

History
9 lines (6 loc) · 1.13 KB

cache.md

File metadata and controls

9 lines (6 loc) · 1.13 KB

缓存误用

大家都使用缓存,很多时候用错了缓存。典型误用缓存的业务场景。

  1. 把缓存作为服务与服务之间传递数据的媒介。服务与服务之间传递数据是数据管道的场景,使用 mq 比缓存更加合适。多个服务间通过缓存传递数据会导致服务间的耦合。
  2. 使用缓存未考虑雪崩。当缓存挂掉,所有请求都会连接到数据库,如果没有做容量预估,很容易导致数据库雪崩。如何应对雪崩?常见方案有缓存高可用和缓存水平切分。缓存实施了高可用,当主挂掉,还有备的顶上,不会导致雪崩。缓存水平切分后,一个缓存挂掉,不会让所有流量都导致数据库。
  3. 调用缓存数据。调用缓存数据需要关注数据获取的复杂性。更严重的是当服务修改了数据,淘汰关联缓存后,很难通知服务方内的缓存。从而导致缓存数据不一致。
  4. 多服务共用缓存。该方案可能导致 key 冲突,彼此冲掉对方的数据。不同的服务时间缓存的数据不同,一个服务很容易把另一个服务的热数据挤出去。