選擇Key-Value Store

來源:互聯網
上載者:User

標籤:

【IT168 專稿】在之前的文章中,給大家介紹了《Redis快速入門:Key-Value儲存系統簡介》,今天進一步給大家介紹為什麼選擇Key-Value Store。Key-Value Store是當下比較流行的話題,尤其在構建諸如搜尋引擎、IM、P2P、遊戲伺服器、SNS等大型互連網應用以及提供雲端運算服務的時候,怎樣保證系統在海量資料環境下的高效能、高可靠性、高擴充性、高可用性、低成本成為所有系統架構們挖苦心思考慮的重點,而怎樣解決資料庫伺服器的效能瓶頸是最大的挑戰。

  大量的互連網使用者選擇Key-Value Store的原因具體是什麼呢? 主要分為下面的2個主要原因:

  1、大規模的互連網應用

  對於google,ebay這樣的互連網企業,每時每刻都有無數的使用者在使用它們提供的互連網服務,這些服務帶來的就是大量的資料輸送量,在同一時間,會並發的有成千上萬的串連對資料庫進行操作。在這種情況下,單台伺服器或者幾台伺服器遠遠不能滿足這些資料處理的需求,簡單的升級伺服器效能這樣的scale up的方式也不行,所以唯一可以採用的辦法就是scale out了。scale out的方法有很多種,但大致分為兩類:一類仍然採用RDBMS,然後通過對資料庫的垂直和水平切割將整個資料庫部署到一個叢集上,這種方法的優點在於可以採用RDBMS這種熟悉的技術,但缺點在於它是針對特定應用的,就是說,由於應用的不同,切割的方法是不一樣的。

  還有一類就是google所採用的方法,拋棄RDBMS,採用key-value形式的儲存,這樣可 以極大的增強系統的可擴充性(scalability),如果要處理的資料持續增大,多加機器就 可以了。事實上,key-value的儲存就是由於BigTable等相關論文的發錶慢慢進入人們的 視野的。

  2、雲端儲存

  如果說上一個問題還有可以替代的解決方案(切割資料庫)的話,那麼對於雲端儲存來說,也許key-value的store就是唯一的解決方案了。雲端儲存簡單點說就是構建一個大型的儲存平台給別人用,這也就意味著在這上面啟動並執行應用其實是不可控的。如果其中某個客戶的應用隨著使用者的增長而不斷增長時,雲端儲存供應商是沒有辦法通過資料庫的切割來達到scale的,因為這個資料是客戶的,供應商不瞭解這個資料自然就沒法作出切割。在這種情況下,key-value的store就是唯一的選擇了,因為這種條件下的scalability必須是自動完成的,不能有人工幹預。這也是為什麼幾乎所有的現有的雲端儲存都是key-value形式的,例如Amazon的smipleDB,底層實現就是key-value,還有google的 GoogleAppEngine,採用的是BigTable的儲存形式。也許唯一可能例外的是MS的解決方案,我在Qcon大會上聽說MS的Azure平台的下一個版本中就會推出基於RDBMS的雲端儲存,儘管我本人仍然對此保持懷疑。

  Key-Value Store最大的特點就是它的可擴充性,這也就是它最大的優勢。所謂的可擴充性,在我看來這裡包括了兩方面內容。一方面,是指Key-Value Store可以支援極大的資料的儲存,它的分布式的架構決定了只要有更多的機器,就能夠保證儲存更多的資料。另一方面,是指它可以支援數量很多的並發的查詢。對於RDBMS,一般幾百個並發的查詢就可以讓它很吃力了,而一個Key-Value Store,可以很輕鬆的支援上千的並發查詢。下面而簡單的羅列了一些特點:

  ●Key-value store:一個 key-value 資料存放區系統,只支援一些基本操作,如:SET(key, value) 和 GET(key) 等;

  ●分布式:多台機器(nodes)同時儲存資料和狀態,彼此交換訊息來保持資料一致,可視為一個完整的儲存系統。

  ●資料一致:所有機器上的資料都是同步更新的、不用擔心得到不一致的結果;

  ●冗餘:所有機器(nodes)儲存相同的資料,整個系統的儲存能力取決於單台機器(node)的能力;

  ●容錯:如果有少數 nodes 出錯,比如重啟、當機、斷網、網路丟包等各種 fault/fail 都不影響整個系統的運行;

  ●高可靠性:容錯、冗餘等保證了資料庫系統的可靠性。

 

  3、Redis實際應用案例

  目前全球最大的Redis使用者是新浪微博,在新浪有200多台物理機,400多個連接埠正在運行著Redis, 有+4G的資料跑在Redis上來為微博使用者提供服務。

  在新浪微博Redis的部署情境很多,大概分為如下的2種:

  第一種是應用程式直接存取Redis資料庫:

  第二種是應用程式直接存取Redis,只有當Redis訪問失敗時才訪問MySQL:

  同時,Digg的一項新功能,添加了對文章瀏覽數的顯示,這一功能的一大賣點是其即時性。而支援此即時瀏覽量計數的,正是Redis。

選擇Key-Value Store

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.