回覆列表
  • 1 # 教教段子

    redis和memcache都是key-value型的快取資料庫,如果只是用到快速快取,將資料儲存在記憶體中快速呼叫,那麼兩者效能上差不多。如果要有訊息佇列的需求,那麼redis更適合。redis可以當成memcache的2.0

  • 2 # 一個存在感小透明

    根據我的經驗,在BAT裡,redis已經逐漸取代了memcached,成為分散式場景廣泛使用的快取方案。接下來,我們就分析下,redis是如何取代memcached,成為開發者的寵兒的。

    支援的儲存型別不同

    雖然都是記憶體資料庫,memcached不僅能夠儲存string,還能夠儲存圖片,影片等形式的檔案。然而對於更多的使用記憶體資料庫做快取以及分散式方案的程式開發者來說,memcached提供的string格式儲存,應用場景有限,而儲存圖片影片的功能又十分雞肋(主要是沒這方面需求)。相比之下,redis提供set,hash,list等多種型別的儲存結構,對於做分散式快取實在是再適合不過了。

    資料落盤

    雖然大多數人使用快取以及分散式方案都不會要求資料持久化,但是誰也不能保證不出現萬一的情況。一旦發生穩定性問題,memcached掛掉後,資料是不可恢復的,而redis除了支援在配置裡開啟資料落盤(RDB),還能透過aof來找回資料。

    記憶體空間與資料量

    memcached可以修改最大記憶體,使用的是LRU演算法,而redis目前底層使用了自己的VM,引入了新的特性突破了物理記憶體的限制。個人認為在這方面依然是redis更加優秀一些。

    使用場景

    基於以上提到的特點,基本我們就能分清redis與memcached的場景了。

    如果對快取資料型別超越了基本的資料結構,需要圖片或者影片,多讀少寫,且資料量非常大的場景,那麼一定要用memcached而不是redis了(比如微博大量查詢好友資訊,微博資訊等,但是不是說微博用的是memcached方案哦)。

    但是如果是對快取的資料格式有更多的要求,且對安全性也有很高的要求的話,建議還是使用redis,這也是redis目前正在逐漸代替memcached的根本原因。

  • 中秋節和大豐收的關聯?
  • 你們覺得勇士和開拓者的比賽怎麼樣?