Redis的诞生历程
從一個故事開始
08 年的時候有一個意大利西西里島的小伙子,筆名antirez(http://invece.org/),創建了一個訪客信息網站LLOOGG.COM。有的時候我們需要知道網站的訪問情況,比如訪客的IP、操作系統、瀏覽器、使用的搜索關鍵詞、所在地區、訪問的網頁地址等等。在國內,有很多網站提供了這個功能,比如CNZZ,百度統計,國外也有谷歌的GoogleAnalytics。我們不用自己寫代碼去實現這個功能,只需要在全局的footer 里面嵌入一段JS 代碼就行了,當頁面被訪問的時候,就會自動把訪客的信息發送到這些網站統計的服
務器,然后我們登錄后臺就可以查看數據了。
LLOOGG.COM 提供的就是這種功能,它可以查看最多10000 條的最新瀏覽記錄。
這樣的話,它需要為每一個網站創建一個列表(List),不同網站的訪問記錄進入到不同的列表。如果列表的長度超過了用戶指定的長度,它需要把最早的記錄刪除(先進先出)。
當LLOOGG.COM 的用戶越來越多的時候,它需要維護的列表數量也越來越多,這種記錄最新的請求和刪除最早的請求的操作也越來越多。LLOOGG.COM 最初使用的數據庫是MySQL,可想而知,因為每一次記錄和刪除都要讀寫磁盤,因為數據量和并發量
太大,在這種情況下無論怎么去優化數據庫都不管用了。
考慮到最終限制數據庫性能的瓶頸在于磁盤,所以antirez 打算放棄磁盤,自己去實現一個具有列表結構的數據庫的原型,把數據放在內存而不是磁盤,這樣可以大大地提升列表的push 和pop 的效率。antirez 發現這種思路確實能解決這個問題,所以用C 語言重寫了這個內存數據庫,并且加上了持久化的功能,09 年,Redis 橫空出世了。從最開始只支持列表的數據庫,到現在支持多種數據類型,并且提供了一系列的高級特性,Redis 已經成為一個在全世界被廣泛使用的開源項目。
為什么叫REDIS 呢?它的全稱是REmote DIctionary Service,直接翻譯過來是遠程字典服務。
從Redis 的誕生歷史我們看到了,在某些場景中,關系型數據庫并不適合用來存儲我們的Web 應用的數據。那么,關系型數據庫和非關系型數據庫,或者說SQL 和NoSQL,到底有什么不一樣呢?
?
總結
以上是生活随笔為你收集整理的Redis的诞生历程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 注册式单例
- 下一篇: SQL 与NoSQL