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

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组件放到容器中了啊

直接放到参数里


清除缓存

处理两个缓存

也可以直接删除这个分区的所有数据

最好去掉前缀 使用默认的前缀

原理和不足




相关推荐
weixin_5386019712 分钟前
智能体测开Day56
java
杨丰玮41827 分钟前
从零手写Java飞机躲障碍游戏|Swing绘图、鼠标跟随、计时器碰撞检测实战(五)
java·python·游戏·游戏引擎·图形渲染·动画·贴图
莫得感情 o1 小时前
踩坑 - 压测三轮后 502:一个默认 10 的连接池如何拖垮整个服务
java
Escalating_xu1 小时前
【Linux线程】线程控制全解析:终止、join/detach、cancel、线程栈与 NPTL(下篇)
java·linux·运维
2602_959960921 小时前
电商大厂Java面试实录:Spring Boot/JVM/Redis/Kafka/微服务/安全/测试全解析
java·jvm·spring boot·redis·面试题
吃饱了得干活1 小时前
限界上下文之后:微服务怎么拆、上下文怎么聊?
java·后端·架构
yngsqq2 小时前
窗体快速取消
java·开发语言
岁月如歌77862 小时前
一次讲透 Redis 缓存击穿、穿透、雪崩,从原理到实战解决方案
java·后端·架构
【赫兹威客】浩哥2 小时前
基于SpringBoot+Vue3的舆情文本分析系统|Elasticsearch检索+情感分析+话题热度追踪 毕设项目
spring boot·elasticsearch·课程设计
小的~~2 小时前
面试被问懵了?为什么 Redis 单线程还能保证 Lua 脚本原子性,却偏偏选了 Lua?
redis·面试·lua