Twemproxy - 推ter針對MemCached與Redis的代理
Twemproxy是一個代理服務器,可以通過它減少Memcached或Redis服務器所打開的連接數。
Twemproxy有何用途呢?它可以:
- 通過代理的方式減少緩存服務器的連接數
- 自動在多臺緩存服務器間共享數據
- 通過不同的策略與散列函數支持一致性散列
- 通過配置的方式禁用失敗的結點
- 運行在多個實例上,客戶端可以連接到首個可用的代理服務器
- 支持請求的流式與批處理,因而能夠降低來回的消耗
</ul>
Redis的創建者Salvatore Sanfilippo(@antirez)撰寫了一篇文章,介紹了如何通過Twemproxy在開啟Redis-cluster特性前就讓Redis集群發揮作用,而在大多數情況下都不會喪失太多的性能:
Twemproxy的強大之處在于可以通過配置的方式讓它禁用掉失敗的結點,同時還能在一段時間后進行重試,抑或使用指定的鍵->服務器映射。這意味著在將Redis用作數據存儲時,它可以對Redis數據集進行分片(禁用掉結點驅逐);在將Redis用作緩存時,它可以啟用結點驅逐以實現簡單的高可用性。
Twemproxy速度很快,真的很快,它幾乎與直接訪問Redis速度一樣快。我敢說在最差的情況下,性能也只不過才損失20%而已。Twemproxy早在今年初由推ter開源,它最開始支持Memcached,最近又添加了對Redis的支持。推ter使用了大量的緩存服務器,每秒會發送300k的tweet;可以看看這篇介紹Real-Time Delivery Architecture At 推ter以了解更多信息。
我對性能問題唯一的想法是當在多個實例上使用命令時,我覺得MGET還有改進空間。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!