第96章 困局中的曙光(2/2)
“哦?”
陆奇的眉毛微微挑了一下。
心中涌起了一丝兴趣。
那个写出tornado的天才,又有什么新作品了?
他移动滑鼠,点了进去。
三个新的项目仓库,整齐地排列在他的眼前。
他的目光,落在了第一个项目的標题上。
【redis】
一个他从未听过的名字。
他点了进去,开始阅读项目的简介,也就是那个通常被称为“readme”的说明文件。
同样,还是熟悉的中文。
【项目名称:redis (remote dictionary server)】
【项目简介:】
【这是一个用c语言编写的、开源的、高性能的键值存储系统。】
【与传统的、將数据存储在硬碟上的资料库不同,redis选择將所有数据都存放在內存中。】
【这意味著,它拥有著无与伦比的读写速度。硬碟的读写是机械式的,而內存的读写,是电子式的,二者之间存在著数量级的差距。】
【它解决了什么问题?】
【在高並发的web应用场景下,资料库的读写往往是最大的性能瓶颈。当数以万计的用户同时请求访问同一条数据时,传统资料库的磁碟將会不堪重负,导致响应延迟,甚至整个服务崩溃。】
【redis的设计初衷,就是为了应对这种情况。它可以作为一个高速缓存层,挡在应用程式和传统资料库之间。那些频繁被访问的热点数据,可以直接从redis的內存中读取,速度快如闪电,从而极大地减轻了后端资料库的压力。】
【它的核心思想是什么?】
【1. 內存即一切:牺牲了数据的持久性(在断电时数据会丟失),换来了极致的速度。】
【2. 丰富的数据结构:redis不仅仅是一个简单的键值对存储。它內置了对字符串、哈希、列表、集合、有序集合等多种数据结构的原生支持。这意味著开发者可以直接在资料库层面进行更复杂的数据操作,这极大地提高了开发效率。】
【3. 单线程模型:你没看错,redis的核心网络模型是单线程的。它通过io多路復用技术,避免了多线程上下文切换带来的性能开销,在处理绝大多数的网络请求时,单线程反而更快、更简单。】
【它可以填补什么样的空白?】
【在当前的网际网路技术栈中,我们缺少一个足够快、足够灵活的“瑞士军刀”来处理那些对性能要求极为苛刻的场景。比如:网站的页面缓存、用户会话管理、排行榜系统、实时计数器、消息队列……redis的出现,將完美地填补这一空白。它不是要取代传统资料库,而是成为其最佳搭档,共同构建起一个真正能支撑海量用户的、高性能的后端服务架构。】
陆奇一字一句地读著。
他的眼睛,越睁越大。
他的呼吸,不知不觉间变得有些急促。
他放在滑鼠上的那只手,甚至开始微微地颤抖。
“天才……”
他从喉咙里,几乎是挤出了这两个字。
“这绝对是天才般的构想!”
他猛地从椅子上站了起来,双手撑在桌面上,身体前倾,几乎要把脸贴在屏幕上。
內存资料库!
这个概念並不算特別新颖,但从没有人能把它做到如此的系统和极致。
尤其是,支持这么多丰富的数据结构!
这意味著它不仅仅是一个缓存,它本身就是一个功能完备的资料库!
再结合昨天那个tornado项目……