← 返回展厅
Redis
Redis2009

Redis

年份:2009
平台:CROSS_PLATFORM
开发者:Salvatore Sanfilippo (antirez)

内存中的数据结构存储系统,以极速读写和丰富数据类型闻名。

浏览:6
点赞:0

展品故事

2009年,意大利程序员萨尔瓦托雷·桑菲利波(网名 antirez)想做一个实时日志分析工具,需要一个能把数据放在内存里、用极简命令读写的数据库。他没在市场上找到满意的产品,便自己动手写了 Redis——Remote Dictionary Server。它的设计克制到极致:把所有数据驻留内存,用单线程事件循环处理命令,对外暴露字符串、列表、集合、有序集合、哈希、位图、流等一组丰富而直观的数据结构,延迟稳定在微秒级。这个看似「玩具」的项目,精准击中了互联网系统里最高频的一类需求:缓存、排行榜、计数器、消息队列、会话存储、实时统计——这些场景要的不是持久化到磁盘的安心,而是「快到感觉不到」,Redis 把「快」做成了唯一的产品哲学。 Redis 的奇妙之处在于「数据结构即接口」。别的 KV 存储只给你 get/set 一个字符串,Redis 却让你直接对集合求交并差、对有序集合按分数排名、对列表做阻塞弹出。于是「排行榜」不再需要额外写排序逻辑,「关注关系」可以直接用集合运算表达,「限流」用计数器加过期时间一两行搞定,「最新消息」用列表裁剪实现,「延迟队列」用有序集合的分数当时间戳。这种把运算下推到数据结构的思路,极大简化了高并发代码的编写,也成为「用对数据结构,代码量减少一半」的最佳范例。 持久化上,桑菲利波坚持「内存为主、异步落盘」的混合策略:RDB 快照做全量备份,AOF 日志做增量重放,既保住了内存级的性能,又在进程重启后不至于一无所有,运维可以按需权衡性能与可靠性。后来加入的哨兵(Sentinel)与集群(Cluster)模式,又把高可用与水平扩展补上。Redis 还意外成为缓存与消息中间件的「平民替代品」,无数系统的架构图里都有它一个小方块,堪称基础设施的「水电煤」,连技术面试都绕不开它,几乎成了后端工程师的必修课。 2020年代,Redis 因转向更严格的许可协议引发社区反弹,Linux 基金会牵头 fork 出 Valkey,云厂商纷纷支持。这场风波反而印证了 Redis 的不可替代:它早已深入系统的毛细血管,替换成本极高,任何改动都牵一发动全身。它的遗产清晰而朴素:有时候,把一件事做到极致快,比做得多、做得全更重要;约束不是缺点,而是风格的来源。对软件博物馆而言,Redis 是「内存计算」范式的最佳标本,它告诉后来者,性能瓶颈往往不在算法,而在数据离 CPU 有多远——把热数据放在内存、用恰当的数据结构表达意图,是每个高并发系统都该学会的第一课,也是面试里最常考、最容易被忽视的那一课。 Redis 的故事还揭示了一个开源项目的完整生命周期:一个人极简的审美,乘以社区的真实需求,能长成支撑全球流量的底座;而许可协议的取舍,又能在瞬间分裂社区、催生分叉。它既是技术范本,也是治理范本——提醒每一位维护者:代码可以优雅,但项目的可持续性同样取决于社区信任与治理选择,二者缺一不可。

详细介绍

Redis 内存中的数据结构存储系统,以极速读写和丰富数据类型闻名。 ## 背景 Redis 的诞生源于意大利开发者 Salvatore Sanfilippo(网名 antirez)在 2009 年的一次个人项目需求。当时他正在开发一个实时 Web 分析服务 LLOOGG,需要一种高性能的、能够处理内存中数据结构的缓存层来存储访问日志和统计信息。他尝试了当时已有的数据库和缓存工具(如 MySQL 和 Memcached),但发现它们要么在数据结构支持上不足,要么在持久化或操作灵活性上无法满足需求。于是,antirez 决定从零开始编写一个轻量级的、基于内存的键值存储系统,最初命名为“Redis”(Remote Dictionary Server)。该项目在 2009 年 3 月首次公开发布,代码托管在 Google Code 上。关键技术挑战包括:在内存中实现高效的数据结构(如列表、集合、有序集合)并保证操作原子性;设计一种既能提供极高读写性能又能支持可选持久化的架构;以及解决在单线程事件循环下如何充分利用多核 CPU 的问题。antirez 通过采用非阻塞 I/O、自定义的简单协议和巧妙的内存分配策略,最终克服了这些难点。Redis 的早期版本迅速吸引了开源社区的关注,VMware 在 2010 年雇佣了 antirez 以全职支持 Redis 开发,这成为项目发展的重要转折点。 ## 人物与公司 Salvatore Sanfilippo(antirez)出生于意大利西西里岛,从小对计算机和编程充满热情。他最初以开源项目(如 hping 网络工具)和博客闻名。在开发 Redis 之前,他创办了一家小型咨询公司,并创建了 LLOOGG 服务。Redis 的成功使他在 2010 年加入 VMware 担任全职开发者,后随 Redis 团队转入 Redis Labs(现 Redis Inc.)。antirez 以其简洁、优雅的代码风格和严谨的工程哲学著称,他坚持 Redis 的核心设计理念——保持简单、高性能、可预测。2020 年,antirez 宣布从 Redis 项目维护者角色退休,Redis 的维护工作由 Redis Inc. 的团队接管。Redis Inc. 成立于 2011 年,最初名为 Redis Labs,由 Ofer Bengal 和 Yiftach Shoolman 创立,致力于提供企业级 Redis 解决方案。公司经历了多轮融资,估值一度超过 20 亿美元,并在 2020 年收购了 Redis 商标和核心开发团队。antirez 退休后仍以顾问身份参与社区活动,其个人博客和 GitHub 上的技术论述至今被开发者视为经典。 ## Industry Impact Redis 的出现在数据库和缓存领域引发了一场革命。它首次将内存中的数据结构服务作为一等公民引入主流,打破了传统关系型数据库和简单键值缓存的二元格局。在产业层面,Redis 推动了 NoSQL 运动的深化,成为实时分析、会话管理、消息队列、排行榜等场景的标准基础设施。它的发布订阅功能和后来支持的 Lua 脚本进一步扩展了应用边界。在技术发展上,Redis 启发了大量内存数据库和缓存系统(如 KeyDB、Dragonfly),并促使传统数据库厂商在内存计算和数据结构支持上改进。市场方面,Redis 被几乎所有大型互联网公司(如 Twitter、GitHub、Stack Overflow、Pinterest)采用,催生了 Redis Labs(后更名为 Redis Inc.)这样的商业公司,其企业版和云服务(Redis Enterprise)在数据库即服务(DBaaS)市场中占据重要份额。此外,Redis 对开发者思维的影响深远:它让“将计算推向数据”的理念在缓存层得以实现,并推动了微服务架构中状态管理的去中心化。 ## Technical Details Redis 的核心技术创新体现在以下几个方面:1)数据结构服务器:不同于 Memcached 等纯键值存储,Redis 支持字符串、哈希、列表、集合、有序集合、位图、HyperLogLog、地理空间索引等丰富数据类型,每种数据结构都配有原子操作命令,使得客户端无需在应用层实现复杂逻辑。2)单线程事件循环:Redis 采用单线程模型处理所有客户端请求,避免了锁竞争和上下文切换开销,同时利用 I/O 多路复用(如 epoll、kqueue)实现高并发,在单核上即可达到数十万 QPS。3)持久化机制:提供 RDB(快照)和 AOF(追加日志)两种持久化方式,用户可根据数据安全性要求选择或组合;AOF 支持不同 fsync 策略,在性能与持久性间取得平衡。4)主从复制与高可用:支持异步主从复制,以及基于 Sentinel 的自动故障转移,后续版本引入了 Redis Cluster 实现自动分片和去中心化高可用。5)发布/订阅与事务:内置 Pub/Sub 消息模式,支持简单的乐观锁事务(WATCH/MULTI/EXEC)。6)Lua 脚本:允许在服务器端执行原子性 Lua 脚本,实现复杂业务逻辑的服务器端封装。架构设计上,Redis 采用客户端-服务器模式,通过自定义的 RESP(REdis Serialization Protocol)协议进行通信,该协议简单高效,支持管道和批量操作。内存管理方面,Redis 使用 jemalloc 或 tcmalloc 分配器,并针对不同数据类型采用多种编码优化(如 ziplist、intset)以节省内存。 ## 时代背景 移动与云计算时代(2010年代至今),强大的计算设备进入每个人的口袋。

## 关键人物 关键人物包括:Steve Jobs(iPhone)、Mark Zuckerberg(Facebook/Instagram)、Jack Dorsey(Twitter)、Kevin Systrom(Instagram)、Evan Spiegel(Snapchat),以及众多中国互联网创新者如张小龙(微信)、王兴(美团)、张一鸣(抖音/TikTok)。Elon Musk(Tesla/SpaceX)和 Jensen Huang(NVIDIA)推动了硬件革命。 ## 历史遗产 Mobile computing and the cloud defined how billions of people interact, work, shop, and communicate in the 21st century.

深度研究

影响力评价

技术影响商业影响文化影响用户规模8889
8.3
综合影响力评分
评分基于技术、商业、文化、用户四个维度的综合考量
🔧技术创新
显著8/10

对技术发展和工程实践的推动程度

💼商业影响
显著8/10

对商业模式和市场格局的影响深度

🎭文化遗产
显著8/10

在科技文化和社会层面的持久影响力

👥用户覆盖
卓越9/10

用户群体的广度和普及程度

评论区 (0)

登录 后参与评论

加载中...