redis技术栈
文章平均质量分 85
redis技术栈
Gary_E
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用lua优化一人一单问题
在集群环境下,一人一单的并发问题可以通过Lua脚本结合Redis来解决。Lua脚本能够保证Redis操作的原子性,避免了传统锁机制的开销。具体实现中,Lua脚本首先检查库存是否充足,然后验证用户是否已下单,最后执行扣库存和保存用户订单的操作。Java代码通过调用Lua脚本,确保在高并发原创 2025-05-15 21:53:15 · 247 阅读 · 0 评论 -
redis缓存的应用
Component@Slf4j/*** 获取锁*//*** 释放锁*//*** 数据预热(将热点数据提前存储到 Redis 中)* @param key 预热数据的 Key* @param value 预热数据的 Value* @param expireTime 逻辑过期时间* @param timeUnit 时间单位*//*** 将 Java 对象序列化为 JSON 存储到 Redis 中并且设置 TTL 过期时间。原创 2025-03-07 16:08:57 · 868 阅读 · 0 评论 -
redis解决常见的秒杀问题
Redis在解决秒杀问题中,通过全局唯一ID生成器确保订单ID的唯一性、高可用性和安全性。全局唯一ID由时间戳和序列号组成,利用Redis的自增命令实现高效生成。秒杀下单功能中,通过查询优惠券、判断库存、扣减库存、创建订单等步骤实现,但存在超卖问题。超卖问题可通过悲观锁或乐观锁(如版本号法或CAS法)解决,确保数据操作的原子性和一致性。Redis的高性能和分布式特性使其成为解决秒杀问题的理想选择。原创 2025-05-15 21:08:14 · 1486 阅读 · 0 评论 -
redis读写一致问题
Redis读写一致性问题是在高并发场景下常见的挑战,尤其是在数据库和缓存数据不一致时。文章探讨了两种常见的处理策略:先删缓存再更新数据库和先更新数据库再删缓存。前者可能导致缓存中写入旧数据,后者则可能在并发查询时缓存脏数据。为了解决这些问题,文章提出了延迟双删策略,即在更新数据库后延迟一段时间再次删除缓存,以确保缓存中的数据与数据库一致。此外,文章还介绍了通过分布式锁(读写锁)来进一步控制并发访问,避免数据不一致。虽然延迟双删和加锁策略能有效缓解一致性问题,但它们也存在操作复杂、性能损耗等缺点,建议根据业务原创 2025-05-18 11:44:21 · 1225 阅读 · 0 评论 -
redis基础结构
基础结构描述常用指令示例String(字符串)最基本的数据结构,可以存储字符串、整数或浮点数SETGETINCRDECRAPPENDMSETMGETGET keyList(列表)有序集合,允许重复元素,底层为双向链表LPUSHRPUSHLPOPRPOPLRANGESet(集合)无序集合,不允许重复元素SADDSREMSMEMBERSSISMEMBERHash(哈希)类似于对象,存储键值对HSETHGETHGETALLHDELZSet(有序集合)具有权重(score)的集合,元素按分数排序。原创 2025-03-06 20:50:11 · 968 阅读 · 0 评论 -
redis持久化和数据淘汰方案
Redis提供了两种持久化方案:RDB和AOF。RDB通过定时生成内存快照文件来备份数据,适合追求快速恢复和容忍少量数据丢失的场景。其优点是内存效率高、服务不中断、快照性能好且数据一致,但数据完整性较低。AOF则通过记录每个写命令来保证数据的完整性,适合对数据安全性要求较高的场景。AOF文件较大,但可以通过重写压缩文件。AOF的刷盘策略有always、everysec和no三种,分别对应不同的性能和可靠性权衡。RDB和AOF各有优劣,RDB恢复速度快但数据完整性较低,AOF数据完整性高但恢复速度较慢。根据实原创 2025-05-18 13:14:30 · 651 阅读 · 0 评论
分享