为了解决数据一致性问题,缓存更新可使用的常见方式如下:
一、数据实时
1.更新数据库后主动淘汰缓存,
2.读请求更新缓存,
3.更新缓存的过程需要进行同步控制,避免缓存雪崩,同一时间只允许一个请求访问数据库acquireLock();
4.为了保证数据的一致性还要加上缓存失效时间
二、数据准实时更新
更新数据库后,异步更新缓存,使用多线程技术或者MQ实现缓存更新服务(ActiveMQ端口8161)
1.更新信息
2.发送消息
3.接收消息
4.读取数据
5.更新缓存
三、任务调度更新
最终一致性,采用任务调度框架,按照一定频率更新,适应在报表统计场景