摘要: 分布式ID特性 全局唯一性:保证在整个分布式系统中唯一性,不会出现重复的ID。 高可用性:可以通过水平扩展、冗余备份或集群部署来确保。即使某个节点或组件发生故障,仍然能够正常。 安全性:分布式ID生成器独立于 业务逻辑的。设计为一个单独的组件或服务,可以被各种服务共享使用。 高性能:要求在很短的时间 阅读全文
posted @ 2025-04-09 19:28 kuki' 阅读(43) 评论(0) 推荐(0)
摘要: 在MySQL中,表最多可以存储的记录数取决于多个因素,包括数据库版本、操作系统和硬件配置等。下面是一些常见的限制:(感觉没啥用) 行数限制: 在MySQL 5.7及之前的版本中,InnoDB和XtraDB存储引擎的行数限制为最大约为64亿(\(2^{32}-1\)) ,即4,294,967,295行 阅读全文
posted @ 2025-04-09 18:43 kuki' 阅读(139) 评论(0) 推荐(0)
摘要: 自增ID存在的问题 当用户抢购时,就会生成订单并保存到tb_voucher_order这张表中,而订单表如果使用数据库自增ID就存在一些问题: id的规律性太明显,容易出现信息的泄露,被不怀好意的人伪造请求 受单表数据量的限制,MySQL中表能够存储的数据有限,会出现分库分表的情况,id不能够一直自 阅读全文
posted @ 2025-04-09 17:06 kuki' 阅读(24) 评论(0) 推荐(0)
摘要: 什么是逻辑过期 所谓的逻辑过期,类似于逻辑删除,并不是真正意义上的过期, 而是新增一个字段,用来标记key的过期时间,这样能能够避免key过期而被自动删除,这样数据就永不过期了, 从根本上解决因为热点key过期导致的缓存击穿。一般搞活动时,比如抢优惠券,秒杀等场景,请求量比较大就可以使用逻辑过期,等 阅读全文
posted @ 2025-04-09 16:07 kuki' 阅读(61) 评论(0) 推荐(0)
摘要: 代码举例 private boolean tryLock(String key) { Boolean flag = stringRedisTemplate.opsForValue().setIfAbsent(key, "1", 10, TimeUnit.SECONDS); // 避免返回值为null 阅读全文
posted @ 2025-04-09 15:15 kuki' 阅读(48) 评论(0) 推荐(0)
摘要: setIfAbsent Spring 文档 https://docs.spring.io/spring-data/redis/docs/current/api/org/springframework/data/redis/core/ValueOperations.html#setIfAbsent(K 阅读全文
posted @ 2025-04-09 14:58 kuki' 阅读(90) 评论(0) 推荐(0)
摘要: 实现了一个基于 Redis 的分布式锁机制,包含获取锁和释放锁的逻辑。 1. 获取锁的逻辑: private boolean tryLock(String key) { Boolean flag = stringRedisTemplate.opsForValue().setIfAbsent(key, 阅读全文
posted @ 2025-04-09 14:46 kuki' 阅读(31) 评论(0) 推荐(0)
摘要: 文档链接 https://baomidou.com/guides/data-interface/#get // 根据 ID 查询 T getById(Serializable id); 代码举例 shop = getById(id); 这行代码的作用是根据给定的 id,从数据库中查询对应的 Shop 阅读全文
posted @ 2025-04-09 14:30 kuki' 阅读(326) 评论(0) 推荐(0)
摘要: Spring文档 opsForValue public ValueOperations<K,V> opsForValue() Description copied from interface: RedisOperations 返回对简单值(或 Redis 术语中的字符串)执行的操作。 Return 阅读全文
posted @ 2025-04-09 13:33 kuki' 阅读(122) 评论(0) 推荐(0)
摘要: 什么是缓存击穿 缓存击穿问题也叫热点Key问题, 就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了, 无数的请求访问会在瞬间给数据库带来巨大的冲击。 解决方案 互斥锁(时间换空间) 优点:内存占用小,一致性高,实现简单 缺点:性能较低,容易出现死锁 逻辑过期(空间换时间) 优点:性能高 阅读全文
posted @ 2025-04-09 11:31 kuki' 阅读(95) 评论(0) 推荐(0)
摘要: 什么是缓存雪崩? 缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机, 导致大量请求到达数据库,带来巨大压力。 解决方案 给不同的Key的TTL(过期时间)添加随机值 给缓存业务添加降级限流策略,(接口限流)比如快速失败机制,让请求尽可能打不到数据库上 给业务添加多级缓存 利用Re 阅读全文
posted @ 2025-04-09 11:11 kuki' 阅读(20) 评论(0) 推荐(0)