Redis 除了缓存,还有哪些场景使用?

100 阅读2分钟

Redis 凭借其高性能、多数据结构支持的特性,除缓存外还广泛应用于以下核心场景,核心逻辑是利用其 内存级速度 和 原生数据结构优势 解决特定业务问题:

  1. 分布式锁
  • 核心价值:解决分布式系统中“并发资源竞争”问题(如多服务同时修改同一订单)。

  • 实现逻辑:基于 SET NX EX 命令(即“不存在则设置,同时加过期时间”),确保同一时间只有一个服务能获取锁,避免数据不一致。

  1. 计数器与限流
  • 计数器:利用 Redis 的 INCR/DECR 命令(原子性操作),实现高并发场景下的实时计数,如商品库存、接口调用次数、文章阅读量等。

  • 限流:结合 INCR + 过期时间(EXPIRE),实现“固定时间窗口内限制请求次数”(如 1 分钟内接口最多调用 100 次),保护后端服务不被过载。

  1. 消息队列(轻量级)
  • 核心价值:实现服务间“解耦”和“异步通信”,适合低延迟、非高可靠要求的场景(如日志上报、通知发送)。

  • 实现方式:基于 List 结构的 LPUSH(生产者发消息)和 BRPOP(消费者取消息,阻塞等待),或 Pub/Sub 模式(广播消息,如实时聊天房间通知)。

  1. 会话存储(Session Store)
  • 核心价值:解决分布式系统中“用户会话共享”问题(如多台服务器部署时,用户登录状态需跨服务同步)。

  • 实现逻辑:将用户 Session 数据(如登录态、权限信息)存储到 Redis,设置与 Session 有效期一致的过期时间,所有服务统一从 Redis 读取会话,保证状态一致性。

  1. 排行榜与实时排序
  • 核心价值:高效实现“按分数实时排序”的场景,如游戏排行榜、商品销量榜、用户积分榜。

  • 实现逻辑:基于 Sorted Set(有序集合)结构,每个元素关联一个“分数”,Redis 原生支持按分数正序/倒序排列,且插入、排序效率极高。

  1. 地理位置服务(LBS)
  • 核心价值:实现基于地理位置的查询,如“附近的商家”“距离排序”。

  • 实现逻辑:通过 GEO 相关命令(如 GEOADD 存储经纬度、GEORADIUS 查询指定半径内的地点),Redis 内部优化了地理位置计算,支持快速筛选和排序。