Redis 数据模式
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/redis-patterns
技能介绍
解决的核心问题
Redis 的核心价值是用对数据结构,但实际开发中常见三类问题:一是选错类型,比如用 List 做排行榜导致排序复杂度飙升,用 String 存对象属性浪费内存;二是缓存策略不当,引发穿透、击穿、雪崩,甚至大 key 导致内存飙升、服务不可用;三是分布式锁、消息队列实现不严谨,出现锁误删、消息丢失等并发问题,或从单机迁移到 Cluster 时踩坑。这些问题不仅影响性能,还会埋下线上故障隐患,该技能正是针对这些痛点设计。
技能核心工作逻辑
该技能以“场景驱动选型”为核心,遵循4个关键步骤:
- 场景分析与数据结构选型:根据业务场景匹配最合适的数据结构,如缓存用 String、排行榜用 Sorted Set、去重用 Set、分布式锁用
SET key val NX PX ttl,同时规范 key 命名(业务:子模块:ID)。 - 缓存策略设计:覆盖最常用的 Cache-Aside 策略,针对缓存穿透、击穿、雪崩提供具体解决方案,同时给出 Big Key 排查与优化方法。
- 分布式锁规范实现:基于 Redlock 算法,强调原子操作、value 唯一性、Lua 释放锁,避免并发冲突,高可用场景推荐 Redisson 或多实例 Redlock。
- 消息队列适配:区分轻量级队列(
LPUSH + BRPOP)和可靠队列(Stream 消费者组),明确两者的适用场景与局限性。
技能输出包含数据结构选型理由、完整命令序列(带注释)、风险与对策,可直接落地到开发中。
适用边界与注意点
该技能聚焦于Redis数据结构的应用与优化,适用于缓存、计数器、排行榜、分布式锁等辅助存储场景。但需注意:它不适合关系型查询、复杂事务,这类需求应选择PostgreSQL;也不适合作为持久化主存储,Redis仅作为辅助存储使用。此外,Redis消息队列属于“尽力交付”,不保证消息不丢失,对可靠性要求极高的场景需搭配专业队列工具。
使用场景
- 设计文章点赞与排行榜功能,需要按点赞数实时排序并记录用户是否已点赞
- 缓存击穿导致数据库被打满,需要设计互斥锁或异步刷新方案
- 排查 Redis 内存飙升问题,定位大 key 并拆分优化
- 实现订单扣库存的互斥操作,需要编写带 TTL 的分布式锁并防止误删
适合人员
- 后端工程师,需要在业务接口中设计缓存读写与失效策略
- 缓存服务负责人,需要排查穿透、击穿、雪崩和大 key 问题
- 分布式系统工程师,需要实现可靠的分布式锁并处理锁过期
- 架构师,需要规划从单机 Redis 迁移到 Cluster 的数据结构调整