Redis学习笔记(11)——Redis缓存集群方案
為什么80%的碼農都做不了架構師?>>> ??
由于單臺Redis服務器的內存管理能力有限,使用過大內存的Redis又會使得服務器的性能急劇下降,一旦服務器發生故障將會影響更大范圍業務,而Redis 3.0 beta1支持的集群功能還不適合生產環境的使用。于是為了獲取更好的Redis緩存性能及可用性,很多公司都研發了Redis緩存集群方案。現對NetFlix、Twitter、國內的豌豆莢在緩存集群方面的解決方案進行一個匯總,以供讀者參考,具體內容如下:
1、NetFlix對Dynamo的開源通用實現Dynomite
Dynomite是NetFlix對亞馬遜分布式存儲引擎Dynamo的一個開源通用實現,使用C/C++語言編寫、以代理的方式實現的Redis緩存集群方案。Dynomite不僅能夠將基于內存的Redis和Memcached打造成分布式數據庫,還支持持久化的MySQL、BerkeleyDB、LevelDB等數據庫,并具有簡單、高效、支持跨數據中心的數據復制等優點。Dynomite的最終目標是提供數據庫存儲引擎不能提供的簡單、高效、跨數據中心的數據復制功能。Dynomite遵循Apache License 2.0開源協議發布,更多關于Dynomite的信息請查看NetFlix技術博客對Dynomite的介紹。
2、Twitter的Redis/Memcached代理服務Twemproxy
Twemproxy是一個使用C語言編寫、以代理的方式實現的、輕量級的Redis代理服務器,它通過引入一個代理層,將應用程序后端的多臺Redis實例進行統一管理,使應用程序只需要在Twemproxy上進行操作,而不用關心后面具體有多少個真實的Redis或Memcached實例,從而實現了基于Redis和Memcached的集群服務。當某個節點宕掉時,Twemproxy可以自動將它從集群中剔除,而當它恢復服務時,Twemproxy也會自動連接。由于是代理,所以Twemproxy會有微小的性能損失。根據 Redis作者的測試結果,在大多數情況下,Twemproxy的性能相當不錯,同直接操作Redis相比,最多只有20%的性能損失。Twemproxy遵循Apache License 2.0開源協議發布,更多關于Twemproxy的信息請登錄其在GitHub的主頁查看。
3、豌豆莢的 Redis 集群解決方案Codis
Codis是豌豆莢使用Go和C語言開發、以代理的方式實現的一個Redis分布式集群解決方案,且完全兼容Twemproxy。Twemproxy對于上一層的應用來說, 連接Codis Proxy(Redis代理服務)和連接原生的Redis服務器沒有明顯的區別,上一層應用能夠像使用單機的 Redis一樣對待。Codis底層會處理請求的轉發、不停機的數據遷移等工作, 所有底層的一切處理, 對于客戶端來說是透明的。總之,可以簡單的認為后臺連接的是一個內存無限大的Redis服務。Codis遵循MIT開源協議發布,更多關于Codis的信息請登錄其在GitHub的主頁查看。
另外,還有一些未開源的解決方案,比如新浪、百度、淘寶、騰訊等的Redis集群方案。在Redis官方正式推出可用于生產環境的集群方案前,以上三種方案是非常值得考慮在生產環境使用的方案。
轉載于:https://my.oschina.net/jewill/blog/381391
總結
以上是生活随笔為你收集整理的Redis学习笔记(11)——Redis缓存集群方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软职位内部推荐-Senior PM
- 下一篇: iPhone与Android手机 各个型