Redis快取系列 三 redis記憶體管理

2022-08-26 03:18:10 字數 1235 閱讀 7677

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 現象 快取...