Redis:存储高频实时数据
本文最后更新于87 天前,其中的信息可能已经过时,如有其他问题请留言
AI智能摘要
文章介绍了Redis的高性能、多功能和高可用特性,包括其核心特点、数据结构、应用场景、持久化机制及与其他系统对比。Redis提供了丰富的数据结构和多种持久化方式,支持主从复制、哨兵和集群等高可用架构,适用于缓存、消息队列、实时计算等多种场景。其性能极高,是现代互联网系统的基础设施。

Redis(Remote Dictionary Server,远程字典服务)是一款开源、高性能、基于内存的键值对(Key-Value)数据库,也常被称为数据结构服务器。

一、核心特点

  • 极致性能:数据常驻内存,单机 QPS 可达 10 万 +,响应时间亚毫秒级;单线程模型(6.0 后网络 IO 多线程)避免锁竞争与上下文切换开销。
  • 数据结构丰富:支持 String、Hash、List、Set、Sorted Set 等基础结构,及 Bitmap、HyperLogLog、GEO、Stream 等高级结构;Redis 8.0 新增 JSON、时序、向量等结构。
  • 持久化:支持 RDB(定时快照)AOF(写日志) 两种持久化,防止数据丢失。
  • 高可用与分布式:提供主从复制、Sentinel(哨兵)、Cluster(集群),支持读写分离、故障自动转移与水平分片。
  • 原子操作与高级功能:所有操作原子性;支持事务、Lua 脚本、Pub/Sub、过期键、LRU 淘汰、分布式锁Redis。
  • 多语言客户端:支持 Java、Python、Go、PHP 等主流语言Redis。

二、核心数据结构

数据类型说明典型场景
String字符串 / 数字 / 二进制,最大 512MB缓存、计数器、分布式锁
Hash键值对集合(类似 Map)用户信息、商品详情、对象存储
List有序可重复链表消息队列、时间轴、阻塞队列
Set无序不可重复集合去重、交集 / 并集 / 差集、好友关系
Sorted Set(ZSet)有序集合(带分数)排行榜、延时队列、范围查询
Bitmap位图(按位操作)签到统计、活跃状态、布隆过滤器
HyperLogLog概率统计独立访客数(UV)、基数统计
GEO地理位置附近的人、距离计算、LBS 服务
Stream流数据消息队列、日志收集、实时数据流

三、典型应用场景

  1. 缓存(最常用):缓存热点数据(商品详情、首页、配置),降低 DB 压力,提升响应速度。
  2. 计数器 & 限流:点赞数、播放量、库存、接口限流(如 INCR 原子自增)。
  3. 实时排行榜:直播礼物榜、销量榜、积分榜(ZSet 天然排序)。
  4. 消息队列:List 实现简单队列,Stream 支持消费组、ACK、消息回溯。
  5. 分布式锁SETNX + 过期时间,解决秒杀超卖、资源竞争。
  6. 会话存储(Session):集中存储用户会话,适配集群 / 微服务。
  7. 地理位置(LBS):附近门店、骑手定位、距离计算。
  8. 实时数据分析:UV 统计、在线人数、实时指标聚合。

四、持久化机制

  • RDB(Redis Database):按配置时间间隔生成内存快照,二进制压缩;优点:恢复快、体积小;缺点:可能丢最后一次快照后的数据。
  • AOF(Append Only File):记录所有写命令到日志,重启回放;优点:数据安全、秒级丢失;缺点:文件大、恢复慢;支持 RDB+AOF 混合持久化

五、高可用架构

  • 主从复制(Master-Slave):主库写、从库读,数据异步同步;提升读性能、数据备份。
  • 哨兵(Sentinel):监控主从节点,主库故障自动选从库升级,实现自动故障转移
  • 集群(Cluster):数据分片到 16384 个槽,分布多节点;支持水平扩展、高可用、读写分离。

六、Redis 与其他系统对比

表格

特性RedisMySQLMongoDBMemcached
存储介质内存 + 磁盘磁盘磁盘 + 内存内存
数据结构丰富(10 + 种)表结构文档仅 String
持久化支持 RDB/AOF支持支持不支持
性能极高(10 万 + QPS)低(千级)中(万级)高(10 万 +)
高可用哨兵 / 集群主从 / MGR副本集 / 分片客户端一致性哈希

七、总结

Redis 是高性能、多功能、可靠稳定的内存数据库,已成为现代互联网系统的基础设施,广泛用于缓存、消息队列、实时计算、分布式锁等场景,是高并发、高可用架构的核心组件。

整理资料不易,觉得有帮助可以投喂下博主哦~感谢!
作者:Hueil
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 协议
转载请注明 文章地址 及 作者 哦~
暂无评论

发送评论 编辑评论


                
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇