其實真正的Redis極限不如Memcache啊。

所以Memcache默認4線程,每個線程一個EventLoop,而Redis只有一個線程

對比一下其中的簡單區別:

1. 在Redis中,並不是所有的數據都一直存儲在內存中的,這是和Memcached相比一個最大的區別的。

2. 且Redis不僅僅支持簡單的k/v類型的數據,且同時還提供list,set,hash等數據結構的存儲。

3. 而且Redis支持數據的備份的,即master-slave模式的數據備份的。

4. Redis支持數據的持久化的,可以將內存中的數據保持在磁碟中,重啟的時候可以再次載入進行使用的。

誤解中:

其實很多開發者都認為Redis不可能的比Memcached快,但是Memcached的完全基於內存,可而Redis具有持久化保存特性,即使是非同步的,Redis也不可能比Memcached快。但是測試結果基本是Redis占絕對優勢的。

其實目前國產的haisql_memcache 更快的, 其中與memcache在指令集上的兼容, 查詢性能已經比memcache的大約高出64%,在插入/更新性能比memcache高出30%,單核查詢性能比Redis快 46.5%的。

最好總結:

人感覺Redis和Memcache在寫入性能上面差別不大,讀取性能上面尤其是批量讀取性能上面Memcache全面勝出,當然Redis也有自己的優點:比如數據持久化、支持更多的數據結構(Set List ZSet)等。


如果單機單進程,在一般的業務場景下,redis的極限壓力是不如memcache的。因為當一個業務跑到極限時,網路數據的傳輸等所需要的CPU就顯得很重要了,redis的單線程模型就吃虧了。

只是一般的場景redis會在一台機器上多開幾台,構成集群,這樣可以把一台機器的CPU,內存使用到一個相對平衡的點。


推薦閱讀:
相关文章