Memcached FAQ(3) 效能和用戶端庫方面的問題

來源:互聯網
上載者:User

 

最後更新時間 2009-04-10    更新人 dormando@rydia.net
這裡收集了經常被問到的關於memcached的問題

  • 效能方面的問題

    • memcached沒有我的database快,為什嗎?
  • 用戶端庫方面的問題
    • memcached有哪些用戶端庫?
    • 使用不同的用戶端庫,能夠訪問到memcached中相同的資料嗎? (不同用戶端庫的可以協作嗎?)
    • 什麼是一致性雜湊的用戶端?
  • 用戶端FAQ

效能方面的問題 

Memcached沒有我的資料庫快,為什嗎? 
在一對一比較中,memcached可能沒有您的SQL查詢快。但是,這不是memcached的設計目標。Memcached的目標是延展性。當串連和請求增加的時候,memcached的效能將比大多數資料庫好。您可以先在高負載的環境(並發的串連和請求)中測試您的代碼,然後再決定memcached是否適合您。

用戶端庫 

memcached有哪些用戶端庫? 
看看上面的"如何訪問memcached"小節。

使用不同的用戶端庫,可以訪問到memcached中相同的資料嗎? 
從技術上說,是可以的。但是您可能會遇到下面三個問題:

  • 不同的庫採用不同的方式序列化資料。舉個例子,perl的Cache::Memcached使用Storable來序列化結構複雜的資料(比如hash references, objects, 等)。其他語言的用戶端庫很可能不能讀取這種格式的資料。如果您要儲存複雜的資料並且想被多種用戶端庫讀取,那麼您應該以簡單的string格式來儲存,並且這種格式可以被JSON、XML等外部庫解析。
  • 同樣,從某個用戶端來的資料被壓縮了,從另一個用戶端來的卻沒被壓縮。
  • 各個用戶端庫可能使用不同的雜湊演算法(階段一雜湊)。在串連到多個memcached伺服器端的情況下,用戶端庫根據自身實現的雜湊演算法把key映射到某台memcached上。正是因為不同的用戶端庫使用不同的雜湊演算法,所以被Perl用戶端庫映射到memcached A的key,可能又會被Python用戶端庫映射到memcached B,等等。Perl用戶端庫還允許為每台memcached指定不同的權重(weight),這也是導致這個問題的一個因素。

什麼是一致性雜湊的用戶端?

一致性雜湊演算法是a new approach to managing the first-layer hashing system for memcached clients。這裡有一篇文章很好地解釋了它的用處:http://www.last.fm/user/RJ/journal/2007/04/10/392555 。

 

用戶端FAQ

目前有一些記錄:
用戶端可以通過"首碼"來給key設定一個域(命名空間)。例如,在一個共用主機的環境中,您可以將客戶姓名作為"首碼",為key建立一個特定的域。在儲存資料的時候,"首碼"可以用在key上,但是不應該參與雜湊計算。目前,memcached自己還沒有實現針對複雜結構資料的序列化方法,JSON則是一種被廣泛使用的對象序列化格式。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.