redis主键失效机制
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主键失效机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中比较字符串的大小用String
- 下一篇: secondarynamenode异常