{
  "type": "BlogWikiIndex",
  "version": 1,
  "site": "https://cosineyay.top/",
  "generatedAt": "2026-10-23T14:28:28.166Z",
  "articles": [
    {
      "id": "redis-in-action-guide",
      "title": "Redis 实战全解析：从短信登录到达人探店",
      "description": "基于黑马点评项目，深入讲解 Redis 在 8 大高并发场景中的应用，涵盖缓存、分布式锁、GEO、BitMap、SortedSet 等核心功能",
      "published": "2026-01-24T00:00:00.000Z",
      "url": "https://cosineyay.top/posts/redis-in-action-guide/",
      "jsonUrl": "https://cosineyay.top/wiki/articles/redis-in-action-guide.json",
      "markdownUrl": "https://cosineyay.top/wiki/articles/redis-in-action-guide.md",
      "category": "后端",
      "tags": [
        "Redis",
        "缓存",
        "分布式锁",
        "GEO",
        "BitMap",
        "SortedSet",
        "高并发",
        "笔记"
      ],
      "headings": [
        "开篇",
        "1.1.1 、导入 SQL",
        "1.1.2、有关当前模型",
        "1.1.3、导入后端项目",
        "1.1.4、导入前端工程",
        "1.1.5 运行前端项目",
        "1.2 、基于 Session 实现登录流程",
        "1.3 、实现发送短信验证码功能",
        "1.4、实现登录拦截功能",
        "1.5、隐藏用户敏感信息",
        "1.6、session 共享问题",
        "1.7.1、设计 key 的结构",
        "1.7.2、设计 key 的具体细节",
        "1.7.3、整体访问流程",
        "1.8 基于 Redis 实现短信登录",
        "1.9.1 初始方案思路总结",
        "1.9.2 优化方案",
        "1.9.3 代码",
        "2.1 什么是缓存?",
        "2.1.1 为什么要使用缓存",
        "2.1.2 如何使用缓存",
        "2.2 添加商户缓存",
        "2.2.1 、缓存模型和思路",
        "2.1.2、代码如下",
        "2.3 缓存更新策略",
        "2.3.1 、数据库缓存不一致解决方案",
        "2.3.2 、数据库和缓存不一致采用什么方案",
        "2.4 实现商铺和缓存与数据库双写一致",
        "2.5 缓存穿透问题的解决思路",
        "2.6 编码解决商品查询的缓存穿透问题",
        "2.7 缓存雪崩问题及解决思路",
        "2.8 缓存击穿问题及解决思路",
        "2.9 利用互斥锁解决缓存击穿问题",
        "3.0 、利用逻辑过期解决缓存击穿问题",
        "3.1、封装 Redis 工具类",
        "3.1 -全局唯一 ID",
        "3.2 -Redis 实现全局唯一 Id",
        "3.3 添加优惠卷",
        "3.4 实现秒杀下单",
        "3.5 库存超卖问题分析",
        "3.6 乐观锁解决超卖问题",
        "3.6 优惠券秒杀-一人一单",
        "3.7 集群环境下的并发问题",
        "4.1 、基本原理和实现方式对比",
        "4.2 、Redis 分布式锁的实现核心思路",
        "4.3 实现分布式锁版本一",
        "4.4 Redis 分布式锁误删情况说明",
        "4.5 解决 Redis 分布式锁误删问题",
        "4.6 分布式锁的原子性问题",
        "4.7 Lua 脚本解决多条命令原子性问题",
        "4.8 利用 Java 代码调用 Lua 脚本改造分布式锁",
        "5.1 分布式锁-redission 功能介绍",
        "5.2 分布式锁-Redission 快速入门",
        "5.3 分布式锁-redission 可重入锁原理",
        "5.4 分布式锁-redission 锁重试和 WatchDog 机制",
        "5.5 分布式锁-redission 锁的 MutiLock 原理",
        "6.1 秒杀优化-异步秒杀思路",
        "6.2 秒杀优化-Redis 完成秒杀资格判断",
        "6.3 秒杀优化-基于阻塞队列实现秒杀优化",
        "7.1 Redis 消息队列-认识消息队列",
        "7.2 Redis 消息队列-基于 List 实现消息队列",
        "7.3 Redis 消息队列-基于 PubSub 的消息队列",
        "7.4 Redis 消息队列-基于 Stream 的消息队列",
        "7.5 Redis 消息队列-基于 Stream 的消息队列-消费者组",
        "7.6 基于 Redis 的 Stream 结构作为消息队列，实现异步秒杀下单",
        "8.1、达人探店-发布探店笔记",
        "8.2 达人探店-查看探店笔记",
        "8.3 达人探店-点赞功能",
        "8.4 达人探店-点赞排行榜",
        "9.1 好友关注-关注和取消关注",
        "9.2 好友关注-共同关注",
        "9.3 好友关注-Feed 流实现方案",
        "9.4 好友关注-推送到粉丝收件箱",
        "9.5 好友关注-实现分页查询收邮箱",
        "10.1、附近商户-GEO 数据结构的基本用法",
        "10.2、 附近商户-导入店铺数据到 GEO",
        "10.3 附近商户-实现附近商户功能",
        "11.1、用户签到-BitMap 功能演示",
        "11.2 、用户签到-实现签到功能",
        "11.3 用户签到-签到统计",
        "11.4 额外加餐-关于使用 bitmap 来解决缓存穿透的方案",
        "12.1 、UV 统计-HyperLogLog",
        "12.2 UV 统计-测试百万数据的统计"
      ],
      "excerpt": "基于黑马点评项目，深入讲解 Redis 在 8 大高并发场景中的应用，涵盖缓存、分布式锁、GEO、BitMap、SortedSet 等核心功能",
      "characterCount": 35909
    }
  ]
}
