缓存穿透问题概述
在 Redis 作为缓存使用时,缓存穿透是常见问题。正常查询流程是先从 Redis 缓存获取数据,若有则直接使用;若没有则去数据库查询,查到后存入缓存。但当请求的数据在缓存和数据库中都不存在时,就会出现缓存穿透。大量此类请求会绕过缓存,直接给数据库造成巨大压力,甚至导致数据库崩溃,比如恶意攻击者用不存在的键发起大量请求来攻击系统。
2025年04月30日
在 Redis 作为缓存使用时,缓存穿透是常见问题。正常查询流程是先从 Redis 缓存获取数据,若有则直接使用;若没有则去数据库查询,查到后存入缓存。但当请求的数据在缓存和数据库中都不存在时,就会出现缓存穿透。大量此类请求会绕过缓存,直接给数据库造成巨大压力,甚至导致数据库崩溃,比如恶意攻击者用不存在的键发起大量请求来攻击系统。
2025年04月28日
首先说下我们为什么需要分布式 ID,以及分布式 ID 是用来解决什么问题的。当我们的项目还处于单体架构的时候,我们使用数据库的自增 ID 就可以解决很多数据标识问题。但是随着我们的业务发展我们的架构就会逐渐演变成分布式架构,那么这个时候再使用数据的自增 ID 就不行了,因为一个业务的数据可能会放在好几个数据库里面,此时我们就需要一个分布式 ID 用来标识一条数据,因此我们需要一个分布式 ID 的生成服务。那么分布式 ID 的服务有什么要求和挑战呢?
2025年04月28日
分布式系统全局唯一的 id 是所有系统都会遇到的场景,往往会被用在搜索,存储方面,用于作为唯一的标识或者排序,比如全局唯一的订单号,优惠券的券码等,如果出现两个相同的订单号,对于用户无疑将是一个巨大的bug。
2025年04月28日
Redis是一个流行的内存数据库,它提供了许多强大的功能,其中之一是 INCR 命令。INCR 命令允许你对 Redis 键的值进行自增操作,而不需要手动编写复杂的逻辑。这篇文章将详细描述 INCR 命令的使用和工作原理,旨在让初学者能够轻松理解。
Redis INCR 命令用于对存储在 Redis 中的键进行自增操作。它适用于存储为整数的值,每次执行 INCR 命令,键的值将会增加1,并返回自增后的值。如果键不存在,则会创建一个新的键,并将其初始值设置为0。
2025年04月28日
这篇笔记的内容主要讲解后台登陆生成验证码相关的内容。在前后端工程都顺利启动之后,打开网页,可以使用浏览器的开发者工具,可以查看http的请求和响应情况,根据url可以快速定位到后端的具体的控制层的方法。
我们可以看到打开首页之后,就是登陆的页面,我们主要关注一点是图片里面的那个请求/dev-api/captchaImage,这个方法是后端生成验证码的方法,验证码生成的主要代码在CaptchaController.java里面。下面着重介绍一下生成验证码的主要思路和流程:
2025年04月28日
分布式系统中,有一些需要使用全局唯一 ID 的场景,这种时候为了防止 ID 冲突可以使用 36 位的 UUID,但是 UUID 有一些缺点,首先他相对比较长,另外 UUID 一般是无序的
2025年04月28日
前面几篇文章,阳仔给大家介绍了,如何用Deepseek 接入到word,excel或者wps中提高办公效率,这一期,阳仔给大家介绍一下,如何使用deepseek来辅助生成实用的流程图:
以下是几种结合 DeepSeek 和常用工具绘制流程图的方法:
2025年04月28日
Java 作为全球最流行的编程语言之一,无论是校招、社招还是跳槽,面试官都会重点考察 Java 核心知识。本文整理了 2025年最新Java面试题