- 博客(20)
- 收藏
- 关注
原创 redis之缓存雪崩
本次我们讨论缓存雪崩的事情,缓存雪崩也是非常严重的事故,同样会导致数据库被压垮导致应用系统不可用问题,缓存雪崩和缓存击穿类似,缓存击穿是某个热点数据失效导致大量获取该热点数据的请求到达数据库,将数据库压垮,而缓存雪崩是大量的缓存数据失效,将数据库压垮,有点像增强版的缓存击穿。本期我们简单介绍了一下缓存雪崩的一些知识,大多都是理论方面的知识,涉及到的一些技能点,我们在后续分享到的时候再详细介绍。
2025-04-13 14:40:19
67
原创 redis之缓存击穿
本期我们聊一下缓存击穿,其实缓存击穿和缓存穿透很相似,区别就是,缓存穿透是一些黑客故意请求压根不存在的数据从而达到拖垮系统的目的,是恶意的,有针对性的。缓存击穿的情况是,数据确实存在,只不过因为某些原因导致缓存中数据消失了,导致请求到达了数据库,从而导致数据库的崩,下面我们看看这个问题是怎么个情况。缓存穿透我们讨论了两种解决方式,这两种方式并没有谁比谁更优秀,没有哪种解决方案是完美的,只有适合应用场景的解决方案,在日常应用时需要我们灵活选择。
2025-04-12 22:56:13
399
1
原创 redis 缓存穿透
我们平时做数据缓存的时候,一般套路是在项目启动时,将热点数据加载到缓存中,请求接口时,如果缓存中存在,优先从缓存中获取返回,如果缓存中不存在,才会从数据库中查询并设置到缓存中,通过这种方式来提升系统的相应性能、减少数据库访问压力。缓存穿透的意思就是,一些恶意请求故意去获取缓存和数据库都不存在的数据,导致每次都会跳过缓存直击数据库,当这种恶意请求数量巨大时,首先会导致其他正常请求无法得到响应,第二是有可导致数据库崩溃导致系统不可用,危害巨大。
2025-03-27 00:01:14
986
原创 redis与数据库双写一致性解决方案
在我们平时开发过程中,把某些数据放到redis中缓存起来用于快速读取已不是什么稀奇的事情。通常的流程是这样的:1、项目启动时,将数据从数据库中加载出来保存到redis中2、项目启动成功后,系统在运行过程中,如果需要这些数据,优先从redis中获取,如果redis中不存在,那么再去查询一次数据库,把查询到的数据先保存到redis中,然后再将数据返回给页面。
2025-03-23 21:38:35
1052
1
原创 redisson 使用与分析
上一期小永哥简单介绍了基于redis实现自定义分布式锁,通过三步优化将漏洞完善。本期要分享的是一个基于redis的分布式锁的成熟框架-redisson,该框架简单易用,功能强大,对于上一期我们担心的问题,redisson框架内部也都已实现,下面简单介绍一下redisson的使用4.1、我们在锁创建、加锁、解锁处打上断点,通过断点来窥探一下redisson的实现原理。
2025-03-20 00:06:41
613
原创 redis 自定义分布式锁
基于redis的分布式锁之前也分享过,上次分享稍微简单了,本次结合小永哥实际工作时遇到的业务场景聊一下redis分布式锁。之前分享中也提过,传统的线程锁只能对当前服务起作用,对于分布式并发有心无力,对于分布式应用,依赖于分布式锁处理并发风险。分布式锁一般有两种实现方案,第一种是zookeeper,第二种是redis,zookeeper在以后的分享中再做介绍,本次主要聊一下基于redis的分布式锁。
2025-03-14 00:19:34
693
原创 redis 日常使用场景整理(一)
redis作为缓存中间件可以说是鼎鼎有名,这次主要是分享一些我本人在平时日常工作中的使用场景,虽然没有很高深的东西,但是做一个记录,希望老铁们平时遇到问题的时候,可以多一点思路。
2025-03-04 23:01:06
395
原创 vue入门之环境搭建
目前java行业不景气,找工作的人多,岗位少,所以岗位对人员的要求越来越高,过去前后端分离,后端程序员只需要管好自己后端那一摊子事情就好了,但是现在远远不够,越来越多的岗位要求全栈,全栈俨然是种趋势,要不向全栈方向进发,要不可能退出这个行业,所以笔者也打算学一学前端向全栈靠近,顺便做点笔记。
2024-05-05 20:10:44
464
2
原创 java lambda简单用法
lambda表达式不算是什么新奇的东西,jdk8诞生也好多年了,但是lambda表达式据我观察,在我多年的开发生涯中,周围同事用的其实不多,具体原因可能还是说不了解,习惯了过去的编程方式等等,其实自己不了解的东西不要抗拒,个人理解都是一个熟悉的过程,熟练以后也没什么大不了。
2024-03-20 14:53:08
331
2
原创 线程池的简单使用
其实所有池化技术,初衷都是节约资源,提升性能,线程池也不例外,线程的创建和销毁非常耗资源,不适合在实际的工作中使用。线程池可以对线程进行重复利用,很好的节约了资源。int corePoolSize 核心线程数;线程池常驻线程数量int maximumPoolSize 最大线程数;当阻塞队列已满,线程池所能扩容的最大数量long keepAliveTime 空闲时间;扩容的线程所能存活的时间。TimeUnit unit 空闲时间单位。
2024-03-19 22:28:47
232
原创 redis最近最少淘汰策略(LRU)模拟实现
以前面试的时候,面试官问了一些redis相关的知识,比如说常用几种数据类型、穿透、击穿、雪崩、持久化方式、过期策略、淘汰策略等等,回答的都还凑合,画风一转,面试官突然问我,redis淘汰策略中,最近最少使用的这种策略底层的实现方式可以说一下吗?当时大脑一片空白,心中万马奔腾,不会......如果容器已满,有新元素到来时,删除最近最少使用的元素,给新元素腾出空间。
2024-03-19 20:52:03
396
原创 spring aop简单使用
spring aop可以说是鼎鼎大名,但是说实话在实际工作中,用的其实并不多,别人不知道哈,反正我本人使用的次数说实话确实不多,纠其原因,我个人总结有以下两点1、中途加入到项目组中,一些公共的业务逻辑已经由大神实现了2、公共逻辑可以使用aop抽取,也可以不抽取,很多时候要不就是手懒不愿意抽取,要不就是压根想不起来使用aop(打完架了才想起来自己会武术)网上经常流传着面试造火箭,工作拧螺丝,这句话我不敢苟同,工作中真的就不能造火箭吗?
2024-03-19 17:52:12
277
原创 图数据库Neo4j笔记一:入门
1、随着社交、金融、零售等行业的发展,现实社会织起了一个庞大而复杂的关系网,采用图数据来处理它,会更高效、更方便,图数据库更擅长支持海量、复杂、多变的关系运算,并且运算性能非常高,在后续的笔记会记录图数据库的其他特性。
2024-01-17 11:35:55
2800
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人