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



应该这样

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


相关推荐
不吃蘑菇!2 分钟前
LeetCode Hot 100-1(两数之和)
java·数据结构·算法·leetcode·哈希表
无名-CODING5 分钟前
小白初识 SpringCloud:微服务基础与 SpringCloud 核心作用
spring·spring cloud·微服务
小江的记录本11 分钟前
【Spring注解】Spring生态常见注解——面试高频考点总结
java·spring boot·后端·spring·面试·架构·mvc
qqacj18 分钟前
SpringBoot3.3.0集成Knife4j4.5.0实战
java
煎饼皮皮侠19 分钟前
利用 AQS 构建一个自己的公平共享锁
java·aqs·公平共享锁
Predestination王瀞潞20 分钟前
Java EE3-我独自整合(第二章:Spring IoC 入门案例)
数据库·spring·java-ee
梁山话事人21 分钟前
Spring IOC
java·数据库·spring
计算机学姐22 分钟前
基于SpringBoot的奶茶店点餐系统【协同过滤推荐算法+数据可视化统计】
java·vue.js·spring boot·mysql·信息可视化·tomcat·推荐算法
@土豆26 分钟前
Java JVM参数环境变量详解及SkyWalking Agent集成技术文档
java·jvm·skywalking
Yupureki27 分钟前
《Linux系统编程》19.线程同步与互斥
java·linux·服务器·c语言·开发语言·数据结构·c++