本文嘗試總結Memcache與Redis之間的相同點及不一樣點,以及關於二者的一些注意問題。html
Redis是單線程因此總體性能不如Memcache,可是平均到每一個核上Redis在存儲小數據時比Memcached性能更高。因爲單線程多I/O串行限制,Redis在存儲更大的數據(大於100k)時性能遜於Memcache。
- Hashes
- Sorted Sets
- Lists
- Sets
可在Redis中執行Lua腳本,例如用Lua實現原子鎖。
Redis的delete操做會有毫秒級的延遲,由於Redis的數據回收機制並不是實時觸發而是定時檢查所需回收的數據是否達到某個筏值,達到纔會觸發數據回收。
根據 這裏( http://www.redis.cn/topics/clients.html )文檔翻譯:「該順序是由客戶端 socket 文件描述符的數字大小及核心報告客戶端事件的順序決定的,所以順序能夠當作不肯定的。」,順序在大致上會呈「先到先做的原則」,但小處上呈現的應該是無序性。
若是考慮「 TCP 的 TIME WAIT 」問題,在 MBP 上測試的結果是 17000 左右的請求數就會出現「 Can't assign requested address 」的錯誤。但這個實際上是受限於操做系統最大文件描述符,在程序上可以使用長連接或單例模式優化。在系統上可經過修改最大文件描述符或減小TCP TIMEWAIT的回收時間。
[暫時想到這些,想到繼續補充]redis
源地址 By佐柱數據庫
轉載請註明出處,也歡迎偶爾逛逛個人小站,謝謝 :)多線程