谷粒商城实战(008 缓存)

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

总时长 104:45:00 共408P

此文章包含第151p-第p157的内容


简介

数据库承担落盘(持久化)工作

拿map做缓存

这种是本地缓存,会有一些问题


分布式系统无法同步,而且会有数据一致性的问题

分布式缓存 应该使用缓存中间件


redis内存不足时可以使用分片集群

整合redis

ctrl+n




检查是否存在 使用的StringUtils是org.springframework家的

使用json的好处 跨语言跨平台兼容

序列化与反序列化

加了redis缓存后的压力测试



两种解决方法:

1 升级lettuce客户端 2021年12月已经没这个问题了 (没压测到堆内存溢出的,是因为spring引用的lettuce版本升级了 不是5.1.8了)

2 切换使用jedis

使用jedis:先排除lettuce 再使用jedis


吞吐量400 无异常


lettuce和jedis都封装了redis的api ,然后redisTemplate封装了这两种,所以可以用redisTemplate 也可以直接用jedis操作redis

缓存失效问题

缓存穿透 大量请求查询一个永不存在的数据
缓存雪崩 大量key同时失效
缓存击穿 热点词汇失效后 大量请求涌入


加锁
同步代码块


分布式锁

this 当前实例对象

spring容器默认是单实例对象,但是多个机器就不行了



应该这样

多复制几个程序 模拟分布式


相关推荐
谢亮_vipxieliang15 小时前
泛型擦除、通配符与 PECS 一次讲透
java·面试
八解毒剂15 小时前
【计组】中央处理器CPU
java·开发语言·计算机组成原理
打工仔折腾 AI16 小时前
工业场景下时序库与实时计算一体化架构选型实践对比
java·开发语言·后端·python·性能优化·架构·ai agent 实战
ZealSinger16 小时前
Java虚拟线程上线后瓶颈转移到哪看三层
java·开发语言·firefox
2601_9611332816 小时前
盘立方软件指标文华期货公式下载
java
蜗牛互联网16 小时前
长任务多Agent共享文件系统的Manifest交接模式
java·人工智能·后端
Sirens.17 小时前
Java并发锁详解:六类锁策略与 synchronized 底层原理
java·前端·算法
hweiyu0017 小时前
Redis命令:HPERSIST
redis·缓存
sunshine22 girl17 小时前
Java学习五 面向对象高级5 内部类1
java·学习
hweiyu0018 小时前
Redis命令:HPEXPIRE
redis·缓存