不同資料型別的大小限制。
最大記憶體控制
各種資料結果記憶體壓縮配置。
大小超出壓縮範圍,溢位後redis將自動將其轉換為正常大小。
主動處理,redis主動觸發檢測key是否過期,每秒執行10次。過程如下:
被動處理
rdb方式
aof方式
過期資料的計算和計算機本身的時間是有直接聯絡的。
配置檔案中設定:maxmemory-policy noeviction。
動態調整:config set maxmemory-policy noeviction。
**策略
說明noeviction
客戶端嘗試執行會讓更多記憶體被使用的命令直接報錯
allkeys-lru
在所有key裡執行lru演算法
volatile-lru
在所有已經過期的key裡執行lru演算法
volatile-lfu
使用過期的key裡執行lfu演算法
allkeys-lfu
使用近似lfu驅逐任何key
allkeys-random
在所有key裡隨機**
volatile-random
再已經過期的key裡隨機**
volatile-ttl
**已經過期的key,並且優先**存活時間(ttl)較短的key
lru(least recently used,最近最少使用):根據資料的歷史訪問記錄來進行淘汰資料。
核心思想:如果資料最近被訪問過,那麼將來被訪問的機率也更高。
注意:redis的lru演算法並非完整的實現,完整的lru需要太多的記憶體。
方法:通過對少量keys進行取樣(50%),然後**其中的乙個最少訪問的key。
lfu(least frequently used):根據歷史的資料訪問頻率來淘汰資料。
核心思想:如果資料過去被訪問多次,那麼將來被訪問的頻率也會更高。
redis的實現是近似的,每次對key進行訪問時,用基於頻率的對數計數器來記錄訪問次數,同時這個計數器會隨時間推移而減小。
啟用lfu演算法後,可以使用熱點資料分析功能。(redis-cli --hotkeys)。
Redis 記憶體管理
一 記憶體管理 命令作用 expire key seconds 設定超時時間戳,單位為秒 ttl key 檢視超時時間,1 表示沒有超時時間,2表示已經超時 persist key 持久化key 取消超時時間 2 spring操作 runwith springjunit4classrunner.cl...
Redis的記憶體管理 記憶體淘汰
給redis設定一些位元組大小去限制記憶體使用,當redis達到所設定的記憶體大小,redis將會刪除一些key,根據所制定的記憶體淘汰策略。如果redis不能刪除key根據所給的策略,或者如果當前的淘汰策略是novication,有新的key進來的時候,redis將回出錯,比如set操作 lpus...
Redis快取系列 三 redis記憶體管理
redis中,它的key的型別都是string,大小為512m 而value的型別的大小又不太相同 我們在啟動redis服務的時候,可以在它的配置檔案redis.conf中來配置它的最大記憶體閾值和達到閾值的執行策略,配置如下 最大記憶體控制 maxmemory 1gb 達到最大閾值的淘汰策略 下邊...