![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 64
成为更好的qyk嘻嘻
一个努力的人
展开
-
缓存更新策略
先更新数据库再更新缓存 和 先更新缓存再更新数据库直接放弃,因为缓存有时候并不是数据库的直接数据,有可能是经过一系列计算得来的数据,如果更新缓存,代价太大先删缓存再更新数据库:问题:当线程A要更新数据,先把缓存删了,这时候线程B要获取数据,从缓存中得不到数据,就到数据库取,但是数据库的数据还没有被线程A更新,于是B获取到了脏数据并且将脏数据重新注入缓存中,造成以后取得数据都是脏的解决:1.加锁,将删缓存和更新数据库的操作视作一个整体,赋予原子性2.延迟双删,A删缓存,更新数据库,然后再次删缓存。原创 2022-03-11 19:57:59 · 1806 阅读 · 0 评论 -
Java高并发秒杀系统总结
项目框架搭建:1.SpringBoot环境搭建2.集成thymeleaf,封装公共返回bean RespBean3.MybatisPlus分布式会话:1.用户登录 a.设计数据库 b.明文密码二次MD5加密 c.参数校验+全局异常处理2.共享Session a.redis功能开发:1.商品列表2.商品详情3.秒杀4.订单详情系统压测:1.JMeter2.自定义变量模拟多用户3.正式压测 a.商品列表 b.秒杀页面优化:1.页面缓存+对象缓存2.页面静态原创 2022-03-07 18:27:23 · 3137 阅读 · 0 评论 -
Redis 缓存穿透 缓存击穿 缓存雪崩 分布式锁 总结
缓存穿透:大量查询数据库中不存在的数据,穿透redis到数据库中查询,导致数据库压力大,可以用布隆过滤器解决缓存击穿:热门key过期,对于热点key的大量查询需要回数据库中查询,导致数据库崩溃,可以调整热点key的存活时间或者使用锁来解决问题缓存雪崩:短时间内大量key值过期,大量查询需要回到数据库中查询,导致数据库压力大,redis压力大,应用压力大,恶性循环直到全部崩溃,可以通过将key值得存活时间设置为随机,这样就不会短时间内有大量key值过期分布式锁:分布式情况下,而进程之间甚至可能都不在同一原创 2022-02-24 17:40:28 · 258 阅读 · 0 评论