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



应该这样

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


相关推荐
爱吃山竹的大肚肚1 分钟前
Nginx 最核心和常用的命令
java·运维·服务器·前端·nginx
进阶小白猿3 分钟前
Java技术八股Day19
java·开发语言
派大鑫wink5 分钟前
【Day33】Servlet 基础:生命周期、Request/Response 对象实战
java·servlet
沛沛老爹6 分钟前
Web开发者进阶AI架构:Agent Skills与MCP的企业级架构权衡实战
java·人工智能·架构·llm·llama·rag
二哈喇子!8 分钟前
SpringBoot启动失败Application run failed的解决办法
java·spring boot·mybatis
J2虾虾8 分钟前
springboot 的 WebMvcConfigurer
java·spring boot·后端
阿杰 AJie11 分钟前
Jackson 常用注解与完整用法总结
java
二哈喇子!18 分钟前
IDEA启动后控制台不报错,但是页面访问404
java·intellij-idea·mybatis
二哈喇子!18 分钟前
Tomcat下载安装以及配置(详细教程)
java·tomcat·intellij-idea
源码获取_wx:Fegn089519 分钟前
基于springboot + vue校园跑腿系统
vue.js·spring boot·后端·spring·课程设计