標籤:blog http 使用 io strong ar 資料 cti html
Memcached刪除主鍵的方式與Redis有何異同
首先,Memcached 在刪除失效主鍵時也是採用的消極方法,即 Memcached 內部也不會監視主鍵是否失效,而是在通過 Get 訪問主鍵時才會檢查其是否已經失效。其次,Memcached 與 Redis 在主鍵失效機制上的最大不同是,Memcached 不會像 Redis 那樣真正地去刪除失效的主鍵,而只是簡單地將失效主鍵佔用的空間回收。這樣當有新的資料寫入到系統中時,Memcached 會優先使用那些失效主鍵的空間。如果失效主鍵的空間用光了,Memcached 還可以通過 LRU 機制來回收那些長期得不到訪問的空間,因此 Memcached 並不需要像 Redis 中那樣的周期性刪除操作,這也是由 Memcached 使用的記憶體管理機制決定的。同時,這裡需要指出的是 Redis 在出現 OOM 時同樣可以通過配置 maxmemory-policy 這個參數來決定是否採用 LRU 機制來回收記憶體空間
Redis主鍵失效機制對系統效能的影響
通過以上對 Redis 主鍵失效機制的介紹,我們知道雖然 Redis 會定期地檢查設定了失效時間的主鍵並刪除已經失效的主鍵,但是通過對每次處理資料庫個數的限制、activeExpireCycle 函數在一秒鐘內執行次數的限制、分配給 activeExpireCycle 函數CPU時間的限制、繼續刪除主鍵的失效主鍵數百分比的限制,Redis 已經大大降低了主鍵失效機制對系統整體效能的影響,但是如果在實際應用中出現大量主鍵在短時間內同時失效的情況還是會使得系統的響應能力降低,所以這種情 況無疑應該避免。
Redis 刪除失效主鍵的方法主要有兩種:
消極方法(passive way),在主鍵被訪問時如果發現它已經失效,那麼就刪除它
積極方法(active way),周期性地從設定了失效時間的主鍵中選擇一部分失效的主鍵刪除
http://redis.io/commands/expire
http://redis.io/topics/latency
http://www.cppblog.com/richbirda ... 1/11/29/161184.html
http://www.cnblogs.com/tangtianf ... /05/02/2479315.html
redis主鍵失效機制