谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用)

本文讲述了Java项目《谷粒商城》中的架构设计,重点关注了缓存一致性问题的解决,如Redisson的lua脚本确保锁的原子性,以及使用Canal处理数据异构。还介绍了SpringCache的使用、自定义缓存管理以及清除缓存的技巧,同时讨论了相关技术的原理和不足之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强

总时长 104:45:00 共408P

此文章包含第166p-第p172的内容


缓存一致性问题解决

redisson使用lua脚本,所以的锁都保证了原子性
在这里插入图片描述
改之前的代码
在这里插入图片描述
锁的粒度越小越好
在这里插入图片描述

如11号商品和12号商品 用同一把锁,12的并发也会影响11
在这里插入图片描述
在这里插入图片描述

数据一致性

目前主要是两种模式: 双写和失效模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用Canal
在这里插入图片描述

使用Canal可以实现数据异构
如:它会分析每天用户的访问记录 和每天的商品信息的更新,然后通过某些算法进行分析计算,生成用户异构系统用户商品推荐表
在这里插入图片描述

在这里插入图片描述

SpringCache

在这里插入图片描述
在这里插入图片描述

两个方法(两个功能)
第一个方法 根据名称得到缓存
第二个方法 得到所有的缓存的名字
在这里插入图片描述

在这里插入图片描述
缓存如果是北京市,那缓存的名字就相当于北京市的各个区的名字
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

整合springCache

在这里插入图片描述

在这里插入图片描述

使用步骤

在这里插入图片描述

在这里插入图片描述
*加粗样式

可以给多个缓存区放置
在这里插入图片描述

在这里插入图片描述

这里是jdk序列化后的结果 可以转成纯文本
在这里插入图片描述
在这里插入图片描述

自定义缓存

在这里插入图片描述

key记得加单引号否则spring会以为是表达式
在这里插入图片描述
在这里插入图片描述
这里的过期时间在配置文件里设置,是毫秒为单位的,切记 同一个过期时间,可能会导致redis雪崩

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
自己写一个组件配置类
在这里插入图片描述
@EnableConfigurationProperties(CacheProperties.class) 的这个注解就把这个CacheProperties组件放到容器中了啊

在这里插入图片描述

直接放到参数里

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

清除缓存

在这里插入图片描述

处理两个缓存
在这里插入图片描述
也可以直接删除这个分区的所有数据
在这里插入图片描述

最好去掉前缀 使用默认的前缀
加粗样式

在这里插入图片描述

在这里插入图片描述

原理和不足

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值