适合引入缓存的业务及影响

1、频繁读的请求

优化思路:

增加缓存(所有人看到的数据一样,适合做缓存),常用redis进行缓存,

带来问题:

易增加网络IO消耗,网络存在抖动时,缓存无效,且在网络恢复后,大量请求,易把redis击穿;

解决方案:

在java层加本地缓存,设定过期时间(一般5s),

整体思路:

硬盘的读->内存读->网络缓存->本地缓存

2、频繁的写请求

优化思路:

使用kafak消息队列,将并发写操作,换成串行操作,将实时一致性,换成最终一致性

带来问题:

对mysql写造成一定压力,写动作持续时间长,导致主从同步差,读性能降低

解决方案:

针对多条数据变更,但实际是操作一条数据,进行合并写的操作

3、写完之后马上读数据,数据的强一致性

该业务不适合用缓存,采用分库形式,分散写数据的压力

原文地址:https://www.cnblogs.com/mmfox/p/15129939.html