Redis 記憶體大小限制 鍵值淘汰策略配置

2022-06-28 13:06:11 字數 2809 閱讀 2432

windows 的 maxmemory-policy 策略可能會少一些

# 指定 redis 最大記憶體限制,redis 在啟動時會把資料載入到記憶體中,達到最大記憶體後,redis 會先嘗試清除已到期或即將到期的 key,移除規則可以通過 maxmemory-policy 來指定,當處理後,仍然到達最大記憶體,將無法再進行寫入操作,但仍然可以進行讀取操作

# redis 新的 vm 機制,會把 key 存放記憶體,value 會存放在 swap 區

# maxmemory # 3gb = 3*1024*1024*1024=3221225472

maxmemory 3221225472

# 當記憶體使用達到最大值時,redis 使用的清除策略:

# lru 表示最近最少使用,lfu 意味著最少使用

# volatile-lru -> 利用 lru 演算法移除設定過過期時間的 key

# allkeys-lru -> 利用 lru 演算法移除任何 key(常用)

# volatile-lfu -> 利用 lfu 演算法移除設定過過期時間的 key

# allkeys-lfu -> 利用 lfu 演算法移除任何 key

# volatile-random -> 移除設定過過期時間的隨機 key

# allkeys-random -> 移除隨機 key

# volatile-ttl -> 移除即將過期的 key(minor ttl)

# noeviction -> 不移除任何 key,只是返回乙個寫錯誤(預設)

maxmemory-policy noeviction

# lru,lfu 和最小 ttl 演算法不是精確的演算法,而是近似演算法(為了節省記憶體),預設 redis 將檢查 5 個鍵並選擇最近使用的鍵,可以配置指令更改樣本大小獲得速度或精度。預設值 5 會產生足夠好的結果,10 非常接近真實的 lru,但耗 cpu,3 更快,但不是很準確。

maxmemory-samples 5

windows

net stop redis 

net start redis

linux

systemctl restart redis

# 設定 100m

config set maxmemory

104857600

config set maxmemory-policy allkeys-lru

# 檢視

config get maxmemory

# maxmemory_human:總共,used_memory_human:已使用

info

memory

# 檢視所有配置

config get *

windows 的 maxmemory-policy 策略可能會少一些

# 指定 redis 最大記憶體限制,redis 在啟動時會把資料載入到記憶體中,達到最大記憶體後,redis 會先嘗試清除已到期或即將到期的 key,移除規則可以通過 maxmemory-policy 來指定,當處理後,仍然到達最大記憶體,將無法再進行寫入操作,但仍然可以進行讀取操作

# redis 新的 vm 機制,會把 key 存放記憶體,value 會存放在 swap 區

# maxmemory # 3gb = 3*1024*1024*1024=3221225472

maxmemory 3221225472

# 當記憶體使用達到最大值時,redis 使用的清除策略:

# lru 表示最近最少使用,lfu 意味著最少使用

# volatile-lru -> 利用 lru 演算法移除設定過過期時間的 key

# allkeys-lru -> 利用 lru 演算法移除任何 key(常用)

# volatile-lfu -> 利用 lfu 演算法移除設定過過期時間的 key

# allkeys-lfu -> 利用 lfu 演算法移除任何 key

# volatile-random -> 移除設定過過期時間的隨機 key

# allkeys-random -> 移除隨機 key

# volatile-ttl -> 移除即將過期的 key(minor ttl)

# noeviction -> 不移除任何 key,只是返回乙個寫錯誤(預設)

maxmemory-policy noeviction

# lru,lfu 和最小 ttl 演算法不是精確的演算法,而是近似演算法(為了節省記憶體),預設 redis 將檢查 5 個鍵並選擇最近使用的鍵,可以配置指令更改樣本大小獲得速度或精度。預設值 5 會產生足夠好的結果,10 非常接近真實的 lru,但耗 cpu,3 更快,但不是很準確。

maxmemory-samples 5

windows

net stop redis 

net start redis

linux

systemctl restart redis

# 設定 100m

config set maxmemory

104857600

config set maxmemory-policy allkeys-lru

# 檢視

config get maxmemory

# maxmemory_human:總共,used_memory_human:已使用

info

memory

# 檢視所有配置

config get *

Redis記憶體大小及淘汰策略

目錄 redis占用記憶體大小 redis的記憶體淘汰 如何獲取及設定記憶體淘汰策略 lru演算法 lru在redis中的實現 lfu演算法 我們知道redis是基於記憶體的key value資料庫,因為系統的記憶體大小有限,所以我們在使用redis的時候可以配置redis能使用的最大的記憶體大小。...

讓Redis突破記憶體大小的限制

redis雖然可以實現持久化儲存,也是基於資料記憶體模型的基礎之上,單機記憶體大小限制著redis儲存的資料量,有沒有一種替代方案呢?本文介紹一款筆者使用的採用new bsd license 許可協議的軟體 ssdb。ssdb 是乙個 c c 語言開發的高效能 nosql 資料庫,支援 kv,lis...

Redis占用記憶體大小

redis占用記憶體大小 我們知道redis是基於記憶體的key value資料庫,因為系統的記憶體大小有限,所以我們在使用redis的時候可以配置redis能使用的最大的記憶體大小。1 通過配置檔案配置 通過在redis安裝目錄下面的redis.conf配置檔案中新增以下配置設定記憶體大小。設定r...