(序言,從一張思維導圖開始,慢慢介紹我自己關於redis的實戰經驗)
現在很多網際網路應用的服務端都使用到了redis,到底大家為什麼要用redis呢?redis有很多特性,比如高效能、高可用、資料型別豐富、易於擴充套件、可持久化、原子性等等,我覺得其中的「高效能」和「資料型別豐富」是最具決定性的,分析思路如下。
1. 效能
關係型資料庫的資料儲存在硬碟,在高併發環境下i/o較高,併發能力弱,redis的資料儲存在記憶體,效能遠高於關係型資料庫。關係型資料庫的效能受硬體、sql質量、資料量等方面的影響較大,不能一概而論,但一般認為不超過1萬次/秒,而redis的讀的速度可達11萬次/秒,寫的速度可達8萬次/秒。
另一方面,隨著資料量的增大,關係型資料庫的查詢速度會顯著降低,而redis則不會。
2. 資料型別豐富
如果只是因為關係型資料庫的效能問題,那麼其它快取(比如memcache)也能減少資料庫的查詢次數,為什麼是redis?因為redis支援字串(string)、雜湊(hash)、列表(list)、無序集合(set)、有序集合(sorted set)多種資料型別,這些資料型別能在實戰中能發揮出強大的作用,在後續的系列文章中我會一一介紹各種資料型別的應用場景。
當然,高可用、易於擴充套件、可持久化、原子性等特點也是很重要的特性,深入理解有助於實戰應用。
加入「為什麼要使用redis?」後的思維導圖。
為什麼要使用blog
有哥們問我,你為什麼使用blog?我總結了一下,覺得有如下幾個原因。1對自己的督促 有了blog,就會經常記得寫點東西 就會經常翻翻網上的新文章,了解一下新技術,不至於迷失在忙碌的生活中 如果把自己的所感所想所學寫出了,自己對自己也會有個概念,不至於迷迷糊糊 還有,畢竟是掛在網上的文字,心中難免擔心...
為什麼要使用XML
xml 代表擴充套件標記語言 extensible markup language 是由 world wide web consortium w 3c 的 xml工作組定義的。這個工作組是這樣描述該語言的 擴充套件標記語言 xml 是 sgml 的子集,其目標是允許普通的 sgml 在web 上以目...
為什麼要使用Nginx?
有人說這些基準測試是不準確的,因為在這樣那樣的環境下,做的比較不一致。我傾向同意基準測試只是告訴了我們其中一部分情況,你能做的是消除偏見 有人見過所有人都同意乙個基準測試是公平的嗎?我是沒見過。我們投資的一些公司把web平台切換到nginx後,可以顯著的解決擴充套件問題。nginx明顯有效的實現了今...