学习Java第三十天——黑马点评37~42

文章目录


Leetcode每日一题:283. 移动零

解法一:先收集不是零的数,再将空出来的位置设置为0。

解法二:快慢指针,遇0则交换

实战篇-商户查询缓存-03.缓存练习题分析

店铺类型数据往往呢是不怎么变化的一些数据。

实战篇-商户查询缓存-04.缓存更新策略


三种方案。后两种啊实现起来相对复杂,而且呢也找不到比较好的这样的一个第三方组件。

第一条、意思就是说,更新数据库以后直接将缓存中的旧数据直接删除了,等下一次查询在往缓存中存储。

线程安全问题:先写数据库,再删除缓存。这样出现安全问题的概率比前者更小。(因为"4.写入缓存"大概率比"2、更新数据库"更快,趁虚而入的概率更低)

实战篇-商户查询缓存-05.实现商铺缓存与数据库的双写一致


实战篇-商户查询缓存-06.缓存穿透的解决思路

请求最终会到达数据库,但是数据库里没有,只能返回null给它。那如果是一个不怀好意的人,整无数个线程并发的来向这个不存在的数据要发起请求,那么这样的所有的请求都会到达我们的数据库,很有可能啊就把我们的数据库搞垮。

这里用第一种。

实战篇-商户查询缓存-07.编码解决商铺查询的缓存穿透问题



实战篇-商户查询缓存-08.缓存雪崩问题及解决思路

1、关于key失效导致雪崩

有的时候为了做缓存的预热,我们可能提前把数据库中的数据,给它导入到我们的缓存当中,那就是批量的去导入的。在批量导入的过程中,因为是同一时刻导入的,他们的TTL设置的是一样的值,很有可能将来时间一到,所有的都一起过期了。

2、Redis服务宕机

集群,主从,哨兵------详见后续视频"高级篇"

熔断、降级、限流------详见"史上最全的springcloud微服务课程"

多级缓存------详见后续视频"高级篇"

相关推荐
Wang15302 小时前
jdk内存配置优化
java·计算机网络
散峰而望2 小时前
【算法竞赛】C++函数详解:从定义、调用到高级用法
c语言·开发语言·数据结构·c++·算法·github
冷凝雨3 小时前
复数乘法(C & Simulink)
c语言·开发语言·信号处理·simulink·dsp
CoderCodingNo3 小时前
【GESP】C++五级真题(贪心思想考点) luogu-B4071 [GESP202412 五级] 武器强化
开发语言·c++·算法
0和1的舞者3 小时前
Spring AOP详解(一)
java·开发语言·前端·spring·aop·面向切面
Wang15303 小时前
Java多线程死锁排查
java·计算机网络
MoonBit月兔3 小时前
年终 Meetup:走进腾讯|AI 原生编程与 Code Agent 实战交流会
大数据·开发语言·人工智能·腾讯云·moonbit
智航GIS3 小时前
8.2 面向对象
开发语言·python
小小星球之旅3 小时前
CompletableFuture学习
java·开发语言·学习
盐焗西兰花3 小时前
鸿蒙学习实战之路-ArkTS循环渲染_ForEach使用指南
学习·华为·harmonyos