- 博客(6)
- 收藏
- 关注
原创 缓存穿透和缓存击穿
本文介绍了缓存穿透和缓存击穿的概念及解决方案。缓存穿透是指查询不存在的数据导致请求直达数据库,可通过布隆过滤器拦截无效请求或缓存空对象来解决。缓存击穿是热点数据过期引发的数据库压力激增,解决方案包括:1)使用逻辑过期策略,过期时获取互斥锁更新数据;2)采用互斥锁机制,只有获取锁的线程能访问数据库,其他线程等待或返回旧数据。两种方案都通过互斥锁控制并发访问,有效保护数据库。
2025-05-26 11:48:56
341
原创 缓存更新策略(数据库和缓存不一致)
为了节省Redis内存并保持数据一致性,缓存更新策略的选择至关重要。错误策略是先删除缓存再更新数据库,这可能导致缓存与数据库不一致的问题。例如,当线程1删除缓存但尚未更新数据库时,线程2查询数据会获取旧数据并重新写入缓存,导致后续请求都返回旧数据。正确策略是先更新数据库再删除缓存。这样,即使线程1在更新数据库时,线程2查询到旧数据,但更新完成后删除缓存,线程1再次查询时会从数据库获取新数据并更新缓存,确保数据一致性。因此,先更新数据库再删除缓存是更优的策略。
2025-05-16 08:25:42
415
原创 基于Redis实现登录流程
Redis在登录流程中用于解决传统session认证的扩展性和存储压力问题。通过高性能、数据持久化和分布式支持,Redis优化了登录认证。流程包括发送验证码和登录认证:发送验证码时,用户手机号作为key,验证码作为value存入Redis;登录时,校验验证码后生成唯一token作为key,用户信息作为value存入Redis,并返回token给前端。后续请求通过拦截器从Redis获取用户信息并存入ThreadLocal,方便快速访问。这种方式提高了代码的扩展性和维护性。
2025-05-12 08:56:23
477
原创 Dto Vo Po之间的区分
当如果服务以集群的方式进行部署时,那nginx在转发请求到服务器时就需要做相应的负载均衡。其实,负载均衡从本质上来说也是基于反向代理来实现的,最终都是转发请求。调用方法:password=DigestUtils.md5DigestAsHex(password.getBytes());@ApiOperation 用于方法上,说明方法的用途,作用。Po:Dao层中数据库记录映射的java对象。将前端发起的请求动态转发给后端服务器。Dto:数据传输对象,请求传来的对象。Vo:传给前端的java对象。
2024-11-13 17:00:23
325
原创 大一新人驾到
至于以后在哪里工作,那就以后再说啦,说不定以后是销售的一把好手,说不定也是微软员工,嘿嘿,没错,俺想去微软,小米腾讯这些也想啊啊啊啊啊。记录一下,现在是学习c语言的第二个月,第一个月刚学完基础语法就打校赛,结果是二十分钟写出两道签到题,三个半小时看着题目发呆😳,太可恶了。感觉学完一点点就像写题,but没有自己独立刷多少,好多都是随着老师讲的敲,哼,俺一定可以变成大佬。现在报名蓝桥杯,下学期貌似可以参加一下真正的比赛了,看爷拿国一。马上要期中考试了,希望c 语言可以考100分,嘻嘻。
2023-11-28 17:09:05
530
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
7