Memcache、Redis、Tair和Varnish如何被定義?有什麼區別

在互聯網項目開發中,緩存的應用是非常普遍了,緩存可以幫助頁面提高加載速度,減少服務器或數據源的負載。那麼,對於緩存服務器中最常用的技術Memcache、Redis和Varnish是什麼?

Memcache

Memcache是老牌的內存緩存技術,對相關領域支持比較豐富,window和linux都可以使用,各種框架(tp/yii等等)都支持使用,session的信息可以非常方便的保存到該Memcache中,每個key保存的數據量最大爲1M,支持的數據類型比較單一,就是String類型,不支持持久化。

優點:高性能讀寫,單一的數據類型,支持客戶端式分佈式集羣,一致性hash多核結構,多線程讀寫性能高。

缺點:無持久化,節點故障可能出現緩存穿透,分佈式需要客戶端實現,跨機房數據同步困難,架構擴容複雜度高。

Redis

Redis支持比較多的數據類型(String/list/set/sortset/hash),Redis支持集合計算的(set類型支持),每個key最大數據存儲量爲1G,Redis是新興的內存緩存技術,對各方面支持不完善,支持持久化操作。內存中的數據結構存儲系統,可用作數據庫、緩存和消息中間件。基本配合後端數據庫使用,存放的只是用戶當前頻繁調去的數據。

優點:高性能讀寫,多數據類型支持,數據持久化,高可用架構,支持自定義虛擬內存,支持分佈式分片集羣,單線程讀寫性能極高。

缺點:多線程讀寫較Mencached慢。

Tair

Tair是一個Key/Value結構數據的解決方案,它默認支持基於內存和文件的兩種存儲方式,分別與緩存和持久化存儲對應。TAIR的功能是get、put、delete以及批量接口,主要針對淘寶應用。。

優點:高性能讀寫,支持三種存儲引擎(ddb/rdb/ldb),支持高可用,支持分佈式分片集羣,支撐了幾乎所有淘寶業務的緩存。

缺點:單機情況下,讀寫性能較上兩種較慢。

Varnish

Varnish是一個開源的反向代理服務器,可用作高性能的代理緩存服務器,Varnish可以有效降低web服務器的負載,提升訪問速度。

優點

穩定性很高。在完成高負荷的工作時,Varnish服務器幾乎不會發生故障。

訪問速度更快。Varnish採用了“Visual PageCache”技術,所有緩存數據都直接從內存讀取,訪問速度更快。

支持更多的併發連接。因爲Varnish的TCP連接釋放快,所以在高併發連接情況下可以支持更多的TCP連接。

Varnish可以通過管理端口,使用正則表達式批量清除部分緩存。

缺點

Varnish在高併發狀態下CPU、I/O和內存等資源開銷高

Varnish進程一旦掛起、崩潰或者重啓,緩存數據都會從內存中完全釋放,此時所有請求都會被髮送到後端服務器,在高併發情況下,這會給後端服務器造成很大壓力。

對於這四種,使用最多的是Redis,因爲Redis可以集羣管理並且支持豐富的數據結構。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章