優化Redis記憶體的9個要點

2021-09-22 22:08:45 字數 1041 閱讀 9084

hash-max-zipmap-entries 64 (hash-max-ziplist-entries for redis >= 2.6)

hash-max-zipmap-value 512  (hash-max-ziplist-value for redis >= 2.6)

list-max-ziplist-entries 512

list-max-ziplist-value 64

zset-max-ziplist-entries 128

zset-max-ziplist-value 64

set-max-intset-entries 512

bit位級別操作:getrange, setrange, getbit and setbit

byte位元組級別操作:getrange and setrange

如果maxmemory沒有設定的redis會繼續分配記憶體,因為它認為合適的,因此它可以(逐漸)吃了你的全部可用記憶體。因此,通常建議配置一些限制。您可能還需要設定maxmemory策略,以noeviction(這不是在一些舊版本的redis的預設值)。

這使得redis的返回記憶體不足的錯誤寫命令,如果當它到達了極限 - 這反過來可能會導致應用程式錯誤,但不會導致因為記憶體飢餓而整機死亡。

另外redis 的6種過期策略redis 中的預設的過期策略是volatile-lru 。設定方式

config set maxmemory-policy volatile-lru

maxmemory-policy 六種方式

volatile-lru:只對設定了過期時間的key進行lru(預設值)

allkeys-lru : 是從所有key裡 刪除 不經常使用的key

volatile-random:隨機刪除即將過期key

allkeys-random:隨機刪除

volatile-ttl : 刪除即將過期的

noeviction : 永不過期,返回錯誤

maxmemory-samples 3 是說每次進行淘汰的時候 會隨機抽取3個key 從裡面淘汰最不經常使用的(預設選項)

Redis 記憶體優化

非常感謝 redis內部有很多的資料型別,這些在官方文件上都可以看到,下面是其內部優化的一些細節點 1.string 和 數字,在redis中如果儲存的是 123 redis是能夠識別出來這是乙個數字並且按照數字來儲存,節省儲存空間,當然除了這個優化之外,redis內部會構建乙個數字池,預設是100...

redis記憶體優化

在資料量小或者只有int資料的時候,redis採用更緊湊的資料結構來儲存資料 zset hash ziplist set int intset 這些特殊的資料結構是一整塊記憶體,避免來記憶體分片,節省了記憶體,並且增加了cache命中,所以雖然演算法複雜度變成了on,但其實更快了 對於只需要flag...

Redis記憶體優化

redis可以當做記憶體使用,但是如果一直往裡儲存不刪除資料,則必然導致記憶體溢位.想法 如何可以實現記憶體資料的維護呢?可以讓使用者永遠都可以存資料.lru是least recently used的縮寫,即最近最少使用,是一種常用的頁面置換演算法,選擇最近最久未使用的頁面予以淘汰。該演算法賦予每個...