Redis(Remote Dictionary Server)是一种基于内存的键值存储数据库,它的性能极高,广泛应用于各种高并发场景。以下是 Redis 常见的用途:
1. 缓存(Cache)
- 作用:存储热点数据,减少数据库查询压力,提高访问速度。
- 示例:网页缓存、商品详情缓存、用户会话缓存(如登录态)。
2. 分布式锁
- 作用:在分布式系统中,多个进程/服务可能会竞争同一个资源,Redis 可以用来实现分布式锁,确保只有一个进程能修改资源。
- 示例:SETNX(SET if Not eXists)+ EXPIRE 组合实现锁机制。
3. 消息队列
- 作用:使用 Redis 的 List(列表) 或 Pub/Sub(发布/订阅) 机制实现消息队列功能,用于异步处理任务。
- 示例:秒杀抢购、任务调度。
4. 计数器
- 作用:Redis 提供 INCR、DECR 指令,可以高效地做计数操作。
- 示例:网站访问量统计、点赞数、播放量、限流控制。
5. Session 共享
- 作用:在多台服务器之间共享用户登录信息,避免用户多次登录。
- 示例:使用 Redis 作为 PHP、Node.js、Java 的 Session 存储。
6. 排行榜
- 作用:Redis 提供 Sorted Set(有序集合),适用于构建排行榜。
- 示例:游戏积分榜、热搜榜、竞赛排名。
7. 地理位置存储
- 作用:Redis 支持 GEO 数据结构,可以存储和查询地理位置数据。
- 示例:查找附近的人、附近的商店。
8. 流式数据处理(Redis Streams)
- 作用:Redis 5.0 引入 Streams(流),可以用来处理事件流、日志数据。
- 示例:日志系统、实时数据分析。
Redis 因为其高性能、支持持久化、数据结构丰富、可分布式部署,在各种互联网应用中被广泛使用!🚀