在什麼樣的場景下需要同時使用Redis和Memcached?
天蓬老师
天蓬老师 2017-04-22 08:59:06
0
4
710

如題,見過一些工程同時使用Redis和Memcached,感覺這樣很麻煩。
如果不是早期使用Memcached且難以移植到Redis,還有沒有其他可能性?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(4)
小葫芦

前廠是這麼用的:

  • 實體資料如使用者的資訊以protobuf編碼存入memcached,一週失效期,作為MySQL的二級快取
  • 列表資料例如使用者的訂閱列表放redis,對應資料MySQL也做備份,但redis讀不到不會再去MySQL讀

總結:

  • redis的資料結構較為豐富,適合存集合、列表或有序表
  • redis在當時還沒有比較完善的分散式方案,所以盡量不存大的實體資料(當然隨著用戶量的暴增,我們後來用哈希key的方式實現了偽分散式)
  • memcached比較簡單,速度也比redis快,適合存實體數據,但當時遇到的問題是json的包裝和解析會成為瓶頸,所以後來我們全部換成了json的包装和解析会成为瓶颈,所以后来我们全部换成了protobuf
Peter_Zhu

需要除key/value之外的更多資料類型支援時或儲存的資料不能被剔除時,使用Redis更合適。而如果只是簡單的快取數據,顯然使用memcached更加合適。或者說,相較來說,redis更適合存儲,而memcache更適合快取。

巴扎黑

需要频繁查询变化频率不是太高的都是這兩位的用點所在

巴扎黑

stackoverflow上面有人問過這個問題《Is memcached a dinosaur in comparison to Redis?》,redis的作者給了解答(http://stackoverflow.com/questions/2873249/is-memcached-a-dinosaur-in- comparison-to-redis)。整體上說,兩者的性能都很好,不必為哪個性能更高而糾結。不過,redis提供的持久化和資料同步機制,這些都是memcached沒有的,所以如果你想要持久化,就只能用redis了。另外,memcached足以應付簡單的鍵值存儲,不過你要是想用更高級的數據結構,比如hash,list,set,zset之類的,redis提供了這些類型,用著更方便。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板