redis中,它的key的型別都是string,大小為512m;而value的型別的大小又不太相同:
我們在啟動redis服務的時候,可以在它的配置檔案redis.conf中來配置它的最大記憶體閾值
和達到閾值的執行策略
,配置如下:
#最大記憶體控制
maxmemory 1gb
# 達到最大閾值的淘汰策略(下邊為預設的刪除策略,再次插入會報錯)
maxmemory-policy noeviction
#配置hash型別壓縮的條件是元素最多為512個,超過512個則不進行壓縮
hash-max-zipmap-entries 512
#配置hash型別value最大為64位元組
hash-max-zipmap-value 64
#list中的壓縮條件是元素最多為512
list-max-zipmap-entries 512
#配置list型別value最大為64位元組
list-max-zipmap-value 64
#set/zset配置類似,在此省略
如果大小超出壓縮範圍,溢位後redis將自動將其轉換為正常大小redis中的資料可以設定過期時間,那麼redis伺服器可以對這些過期的資料進行處理,具體的方式有兩種:
主動處理的過程如下:
從具體相關過期的金鑰集中測試20個隨機金鑰
刪除找到的所有已過期金鑰
如果超過25%的金鑰已過期,重新執行步驟1
每次訪問key的時候,發現超時後清理掉
這裡要注意一點,過期資料的計算和計算機本身的時間是有直接聯絡的!redis中的記憶體滿了之後,就會根據具體的淘汰策略來對記憶體進行管理,具體有兩種配置方式:
redis.conf配置檔案中配置
maxmemory-policy noeviction
通過命令動態調整
config set maxmemory-policy noeviction
具體的**策略有:
lru(least recently used,最近最少使用),根據資料的歷史訪問記錄來進行資料淘汰。
lfu(least frequently used),根據資料的歷史訪問頻率來進行淘汰。
redis系列 五 redis 快取設計
序號 名稱鏈結位址 1redis系列 一 redis安裝以及基本型別簡介 2redis系列 二 redis持久化 3redis系列 三 redis主從複製 4redis系列 四 redis哨兵模式與集群 5redis系列 五 redis 快取設計 1.1收益 加速讀寫 因為快取通常都是全記憶體的 例...
Redis 快取之三
我們在set key 的時候,都可以給定乙個expire time,就是過期時間,指定這個key 比如說只能存活乙個小時,那麼快取到期就會失效 定性刪除 指的是redis預設的每隔100ms就會隨機的抽取一些設定了過期時間的key,檢查是否過期,如果過期了就會刪除,但是問題是,定期刪除會導致很多過期...
三 Redis快取問題
三 redis快取問題 redis快取的使用,極大的提公升了應用程式的效能和效率,特別是資料查詢方面。但同時,它也帶來了一些問題。其中,最要害的問題,就是資料的一致性問題,從嚴格意義上講,這個問題無解。如果對資料的一致性要求很高,那麼就不能使用快取。1 快取擊穿 熱點的key,大併發 1 現象 快取...