Ubuntu 22.04 使用 Certbot 为 Nginx 配置 HTTPS 与自动续期2024-02-082026-10-08技术certbot/Netty本文记录在 Ubuntu 22.04(Jammy)服务器上,通过 Certbot 为宿主机 Nginx 配置 Let's Encrypt 免费 SSL 证书的完整过程,包括 apt update 的 Docker GPG 公钥报错、证书申请、自动续期验证及 Nginx 重载。示例域名为 exampl2024-02-08|25|0|0
缓存雪崩及解决方案2023-02-272026-10-24技术redis一、什么是缓存雪崩? 缓存雪崩(Cache Avalanche) 是指大量缓存 Key 在同一时间失效,或者 Redis 服务发生故障,导致大量请求无法命中缓存,集中访问 MySQL,造成数据库压力激增,甚至导致系统崩溃。 主要有两种场景: 1. 大量 Key 同时过期 大量缓存 Key 同时过期 2023-02-27|11|0|0
Redis 在短信验证码与用户登录中的应用2023-02-242026-10-23技术redisRedis 在登录功能中主要有两个作用: 存储短信验证码:用于验证用户身份。 存储用户登录态:通过 Token 识别已登录用户。 一、短信验证码存储 短信验证码适合使用 Redis 的 String 数据类型。 例如: Key: sms:login:13800138000 Value: 12342023-02-24|9|0|0
Redis 学习笔记:缓存穿透及解决方案2023-02-242026-10-24技术redis一、什么是缓存穿透? 缓存穿透是指用户请求的数据在 Redis 和 MySQL 中都不存在,导致请求无法命中缓存,每次都直接访问数据库。 例如: 用户请求 ID = 99999 ↓ Redis:不存在 ↓ MySQL:不存在 ↓ 返回空数据 如果大量请2023-02-24|13|0|0
MySQL 进阶:UNION、SAVEPOINT、索引原理与索引失效2023-01-072026-10-07技术mysql在日常 Java 后端开发中,MySQL 不只是会写 SELECT、UPDATE 就够了。 真正影响系统稳定性和性能的,往往是这些问题: UNION 和 UNION ALL 有什么区别? SAVEPOINT 到底有什么用? 索引为什么能加快查询? <2023-01-07|11|0|0
Redis 库存超卖问题与解决方案2022-03-262026-10-26技术redis一、什么是库存超卖? 库存超卖是指在高并发情况下,多个线程同时判断库存充足,导致实际销售数量超过可用库存。 例如:商品库存只有 1 件。 线程 A 线程 B | | 读取库存:1 2022-03-26|9|0|0
Redis 分布式锁:手动实现原理与存在的问题2022-01-262026-10-28技术redis一、Redis 分布式锁的实现原理 Redis 分布式锁主要利用 SET NX EX 实现,核心是保证多个线程或进程之间的互斥访问。 手动实现时,可以定义一个 ILock 接口,封装获取锁和释放锁的方法。 1. 获取锁 使用 Redis 的 SET 命令: SET lock:order:1001 u2022-01-26|10|0|0
Redis 学习记录:缓存击穿与分布式锁2021-03-012026-10-25技术redis一、缓存击穿 缓存击穿是指:高并发场景下,某个热点 Key 突然失效,大量请求同时访问数据库,导致数据库压力激增。 例如:某个热门商品每秒有 1000 次请求,当其 Redis 缓存过期时,这些请求可能同时查询 MySQL。 1. 互斥锁方案 核心思路:只允许一个线程查询数据库并重建缓存,其他线程等2021-03-01|7|0|0
Jedis 与 Spring Data Redis 学习笔记2021-02-242026-10-23技术redis一、Jedis 与 Spring Data Redis Jedis:Java Redis 客户端,提供与 Redis 命令对应的 API。 Spring Data Redis:Spring 生态中的 Redis 操作抽象,提供 RedisTemplate 等工具,可配合 Jedis 或 Lettuc2021-02-24|9|0|0