谷粒商城实战(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容器默认是单实例对象,但是多个机器就不行了



应该这样

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


相关推荐
学长毕设6 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
zzu123zsw7 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
源码集结号8 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
论文复现现场8 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
啃瓜子的松鼠8 小时前
泛微OAe9-后端二开异步调用
java
秋天的怀念_David9 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
外收内放9 小时前
Python基础语法练习题(73)
java·前端·python
Wang's Blog9 小时前
Java 项目实战: 交友项目 - 环信后台发送消息测试
java·交友
用户37215742613510 小时前
Java 操作 Word 脚注和尾注:添加、读取与删除
java
小嘉丶学长10 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节