💡 Redis 简介
Redis(Remote Dictionary Server) 是一个基于内存、高性能、支持多种数据结构的 开源键值对(Key-Value)数据库,通常用于缓存、消息队列、实时数据处理等场景。
它由 Salvatore Sanfilippo(昵称 antirez) 于 2009 年发起,使用 C语言 编写,并遵循 BSD 开源协议。
🚀 核心特性
特性 | 说明 |
---|---|
🧠 内存存储 | 所有数据存储在内存中,读写速度极快(可达10万 QPS) |
🧺 丰富数据结构 | 支持 String、List、Set、Hash、ZSet、有序流、Geo、Bitmap、HyperLogLog 等 |
🔄 持久化机制 | 支持 RDB(快照)和 AOF(日志)持久化,保证数据可靠性 |
📡 发布/订阅机制 | 内置 pub/sub 模型,适用于消息通知、聊天室等 |
🔀 事务支持 | 支持基本事务操作(MULTI/EXEC) |
💎 高可用架构 | 支持主从复制(Replication)、哨兵模式(Sentinel)、Redis Cluster 分布式集群 |
🧰 轻量易用 | 命令简单,工具丰富,社区活跃 |
🎯 Redis 的典型应用场景
应用场景 | 描述 |
---|---|
✅ 缓存系统 | 用于热点数据缓存,提升系统响应速度,减轻数据库压力 |
✅ 分布式锁 | 保证分布式系统中的互斥操作 |
✅ 排行榜系统 | 使用 ZSet 实现排行榜等功能 |
✅ 消息队列 | 基于 List 或 Stream 实现生产者-消费者模型 |
✅ 会话存储 | 保存登录状态、Session、Token 等 |
✅ 限流/计数器 | 控制接口调用频率、记录访问量等 |
📦 Redis 部署方式
-
单机模式:简单快捷,适用于中小项目或开发环境
-
主从复制:实现读写分离,提高读性能
-
哨兵模式(Sentinel):提供主从自动故障转移(高可用)
-
集群模式(Cluster):支持分片存储,适合大规模部署
🎓 常见使用语言客户端
Redis 提供丰富的客户端支持,如:
-
Java(Jedis、Lettuce、Redisson)
-
Python(redis-py)
-
Node.js(ioredis)
-
Go(go-redis)
-
C#(StackExchange.Redis)
🧠 总结一句话:
Redis 是速度与功能兼备的内存数据库,既可做缓存,又能当消息队列、排行榜、数据分析工具,是现代高性能系统的“核心利器”。