" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis集群設(shè)置maxmemory參數(shù)的實現(xiàn)

 更新時間:2026年01月16日 10:50:29   作者:alden_ygq  
Redis集群中設(shè)置內(nèi)存限制需要為每個節(jié)點單獨配置maxmemory參數(shù),本文就來介紹一下Redis集群設(shè)置maxmemory參數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在 Redis 集群中設(shè)置內(nèi)存限制需要為每個節(jié)點單獨配置 maxmemory 參數(shù)。以下是詳細(xì)的操作指南:

設(shè)置步驟

1. 連接到每個集群節(jié)點

# 獲取所有集群節(jié)點信息
redis-cli -c CLUSTER NODES

# 示例輸出:
d1861060fe6a534d42d8a19aeb36600e18785e04 127.0.0.1:7001@17001 master - 0 1620000000000 1 connected 0-5460
289279eb7dbfa1b2d5e7e9c3e8d4f5a6b7c8d9e0 127.0.0.1:7002@17002 master - 0 1620000000000 2 connected 5461-10922

2. 為每個節(jié)點設(shè)置 maxmemory

# 連接到第一個節(jié)點
redis-cli -h 127.0.0.1 -p 7001

# 設(shè)置 2GB 內(nèi)存限制
127.0.0.1:7001> CONFIG SET maxmemory 2gb
OK

# 設(shè)置淘汰策略(推薦 allkeys-lru)
127.0.0.1:7001> CONFIG SET maxmemory-policy allkeys-lru
OK

# 驗證設(shè)置
127.0.0.1:7001> CONFIG GET maxmemory
1) "maxmemory"
2) "2147483648"

# 對其他節(jié)點重復(fù)相同操作

3. 修改配置文件(永久生效)

在每個節(jié)點的 redis.conf 文件中添加:

# 設(shè)置最大內(nèi)存為 2GB
maxmemory 2gb

# 設(shè)置內(nèi)存淘汰策略
maxmemory-policy allkeys-lru

# 集群模式特定配置
cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file nodes.conf

4. 批量設(shè)置腳本

#!/bin/bash

# 節(jié)點列表
NODES=(
    "127.0.0.1:7001"
    "127.0.0.1:7002"
    "127.0.0.1:7003"
    "127.0.0.1:7004"
    "127.0.0.1:7005"
    "127.0.0.1:7006"
)

MEMORY_LIMIT="2gb"  # 內(nèi)存限制
POLICY="allkeys-lru" # 淘汰策略

for node in "${NODES[@]}"; do
    ip=${node%:*}
    port=${node#*:}
    
    echo "Configuring $ip:$port"
    
    redis-cli -h $ip -p $port CONFIG SET maxmemory $MEMORY_LIMIT
    redis-cli -h $ip -p $port CONFIG SET maxmemory-policy $POLICY
    redis-cli -h $ip -p $port CONFIG REWRITE
    
    # 驗證配置
    redis-cli -h $ip -p $port CONFIG GET maxmemory
    redis-cli -h $ip -p $port CONFIG GET maxmemory-policy
done

集群內(nèi)存管理最佳實踐

1. 內(nèi)存分配策略

節(jié)點類型推薦內(nèi)存比例說明
主節(jié)點70-80% 系統(tǒng)內(nèi)存存儲實際數(shù)據(jù)
從節(jié)點等同主節(jié)點保證故障轉(zhuǎn)移能力
集群管理節(jié)點1-2GB運行集群管理進程

2. 監(jiān)控關(guān)鍵指標(biāo)

# 查看集群內(nèi)存使用概覽
redis-cli -c --cluster check 127.0.0.1:7001

# 檢查單個節(jié)點內(nèi)存
redis-cli -h 127.0.0.1 -p 7001 INFO memory

關(guān)鍵指標(biāo):

  • used_memory_human:當(dāng)前使用內(nèi)存
  • maxmemory_human:配置的最大內(nèi)存
  • mem_fragmentation_ratio:內(nèi)存碎片率
  • evicted_keys:因內(nèi)存不足被淘汰的鍵數(shù)量

3. 內(nèi)存優(yōu)化技巧

  1. 使用 Hash 分片

    # 大鍵分片示例
    HSET user:1000 profile:basic "name,age"
    HSET user:1000 profile:contact "email,phone"
  2. 啟用內(nèi)存壓縮

    # redis.conf
    hash-max-ziplist-entries 512
    hash-max-ziplist-value 64
    list-max-ziplist-size -2
  3. 定期執(zhí)行內(nèi)存整理

    # Redis 4.0+ 內(nèi)存碎片整理
    redis-cli -h 127.0.0.1 -p 7001 MEMORY PURGE

4. 集群擴容策略

當(dāng)內(nèi)存使用超過 80% 時考慮擴容:

# 添加新節(jié)點
redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7001

# 遷移槽位
redis-cli --cluster reshard 127.0.0.1:7001

高級配置

1. 不同節(jié)點設(shè)置不同內(nèi)存限制

# 高負(fù)載節(jié)點設(shè)置更大內(nèi)存
redis-cli -h 127.0.0.1 -p 7001 CONFIG SET maxmemory 4gb

# 低負(fù)載節(jié)點設(shè)置較小內(nèi)存
redis-cli -h 127.0.0.1 -p 7002 CONFIG SET maxmemory 1gb

2. 動態(tài)調(diào)整策略

#!/bin/bash
# 自動調(diào)整內(nèi)存腳本

THRESHOLD=90 # 內(nèi)存使用閾值%

for node in "${NODES[@]}"; do
    ip=${node%:*}
    port=${node#*:}
    
    # 獲取內(nèi)存使用率
    usage=$(redis-cli -h $ip -p $port INFO memory | grep -oP 'mem_allocated_percent:\K\d+')
    
    if [ $usage -gt $THRESHOLD ]; then
        # 增加 10% 內(nèi)存
        current_mem=$(redis-cli -h $ip -p $port CONFIG GET maxmemory | tail -1)
        new_mem=$((current_mem * 11 / 10))
        redis-cli -h $ip -p $port CONFIG SET maxmemory $new_mem
        echo "Increased memory on $ip:$port to $new_mem"
    fi
done

3. 使用 Redis 模塊優(yōu)化內(nèi)存

# 加載內(nèi)存優(yōu)化模塊
loadmodule /path/to/redisbloom.so
loadmodule /path/to/redisearch.so

# 使用 Bloom 過濾器
BF.RESERVE users 0.01 1000000

故障排除

常見問題及解決方案

問題癥狀解決方案
內(nèi)存不足OOM command not allowed 錯誤增加 maxmemory 或優(yōu)化數(shù)據(jù)結(jié)構(gòu)
高內(nèi)存碎片mem_fragmentation_ratio > 1.5執(zhí)行 MEMORY PURGE 或重啟節(jié)點
淘汰率過高evicted_keys 快速增加調(diào)整淘汰策略或增加內(nèi)存
槽位不均衡部分節(jié)點內(nèi)存使用率高重新分配槽位 redis-cli --cluster rebalance

診斷命令

# 查找內(nèi)存消耗大的鍵
redis-cli -h 127.0.0.1 -p 7001 --bigkeys

# 內(nèi)存分析
redis-cli -h 127.0.0.1 -p 7001 MEMORY STATS

# 監(jiān)控淘汰事件
redis-cli -h 127.0.0.1 -p 7001 MONITOR | grep evicted

生產(chǎn)環(huán)境建議

  1. 監(jiān)控系統(tǒng)

    • 使用 Prometheus + Grafana 監(jiān)控集群內(nèi)存使用

    • 設(shè)置警報規(guī)則(內(nèi)存 > 85% 時報警)

  2. 備份策略

    # 定期備份集群配置
    redis-cli CLUSTER NODES > cluster-backup-$(date +%F).txt
  3. 安全配置

    # redis.conf
    rename-command CONFIG "REDISCONFIG"
    requirepass "strongpassword"
    masterauth "replicationpassword"
  4. 滾動重啟

    # 安全重啟集群節(jié)點
    for port in {7001..7006}; do
      redis-cli -h 127.0.0.1 -p $port CLUSTER FAILOVER TAKEOVER
      redis-cli -h 127.0.0.1 -p $port shutdown
      sleep 5
      redis-server /path/to/redis-$port.conf
      sleep 10
    done

配置示例文件

redis-cluster-node.conf

# 基本配置
port 7001
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000

# 內(nèi)存管理
maxmemory 4gb
maxmemory-policy allkeys-lru

# 持久化
appendonly yes
appendfilename "appendonly.aof"
aof-rewrite-incremental-fsync yes

# 安全
requirepass "your_strong_password"
masterauth "replication_password"

# 優(yōu)化
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
activerehashing yes

總結(jié)

在 Redis 集群中設(shè)置 maxmemory 的關(guān)鍵點:

  • 單獨配置:每個節(jié)點需要單獨設(shè)置內(nèi)存限制
  • 統(tǒng)一策略:建議所有節(jié)點使用相同的淘汰策略
  • 動態(tài)調(diào)整:根據(jù)負(fù)載情況動態(tài)調(diào)整內(nèi)存限制
  • 監(jiān)控預(yù)警:實時監(jiān)控內(nèi)存使用,設(shè)置預(yù)警閾值
  • 定期優(yōu)化:使用內(nèi)存整理和數(shù)據(jù)結(jié)構(gòu)優(yōu)化減少碎片
  • 容量規(guī)劃:當(dāng)內(nèi)存使用超過 80% 時考慮擴容

通過合理配置 maxmemory 和淘汰策略,可以確保 Redis 集群在高負(fù)載下穩(wěn)定運行,防止內(nèi)存溢出導(dǎo)致的系統(tǒng)崩潰。同時結(jié)合監(jiān)控和自動化工具,可以實現(xiàn)內(nèi)存使用的動態(tài)管理和優(yōu)化。

到此這篇關(guān)于Redis集群設(shè)置maxmemory參數(shù)的實現(xiàn)的文章就介紹到這了,更多相關(guān)Redis 設(shè)置maxmemory參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Redis?整數(shù)集合的具體使用(intset)

    Redis?整數(shù)集合的具體使用(intset)

    對于集合,STL?的?set?相信大家都不陌生,本文主要介紹了整數(shù)集合,又稱為?intset,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Redis為什么默認(rèn)有16個數(shù)據(jù)庫問題

    Redis為什么默認(rèn)有16個數(shù)據(jù)庫問題

    這篇文章主要介紹了Redis為什么默認(rèn)有16個數(shù)據(jù)庫問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 基于Redis位圖實現(xiàn)系統(tǒng)用戶登錄統(tǒng)計

    基于Redis位圖實現(xiàn)系統(tǒng)用戶登錄統(tǒng)計

    這篇文章主要介紹了基于Redis位圖實現(xiàn)系統(tǒng)用戶登錄統(tǒng)計,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • Redis實現(xiàn)集群搭建+集群讀寫的示例

    Redis實現(xiàn)集群搭建+集群讀寫的示例

    本文介紹了Redis集群的搭建和讀寫操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Redis如何實現(xiàn)投票功能

    Redis如何實現(xiàn)投票功能

    這篇文章主要介紹了Redis如何實現(xiàn)投票功能,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 基于Redis實現(xiàn)登錄功能思路詳解(手機號+驗證碼)

    基于Redis實現(xiàn)登錄功能思路詳解(手機號+驗證碼)

    本文介紹了使用手機號和驗證碼登錄的方式,驗證碼通過控制臺輸出,重點解釋了UserServiceImpl實現(xiàn)類的結(jié)構(gòu),包括sendCode、login和createUserWithPhone方法,還介紹了攔截器框架,包括preHandle和攔截器鏈的配置,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • 小白也能看懂的Redis遍歷鍵和數(shù)據(jù)庫管理詳解

    小白也能看懂的Redis遍歷鍵和數(shù)據(jù)庫管理詳解

    這篇文章主要為大家介紹了小白也能看懂的Redis遍歷鍵和數(shù)據(jù)庫管理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Redis教程(十):持久化詳解

    Redis教程(十):持久化詳解

    這篇文章主要介紹了Redis教程(十):持久化詳解,本文講解了Redis提供了哪些持久化機制、RDB機制的優(yōu)勢和劣勢、AOF機制的優(yōu)勢和劣勢、其它等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • 關(guān)于redis可視化工具讀取數(shù)據(jù)亂碼問題

    關(guān)于redis可視化工具讀取數(shù)據(jù)亂碼問題

    大家來聊一聊在日常操作redis時用的是什么工具,redis提供的一些命令你都了解了嗎,今天通過本文給大家介紹redis可視化工具讀取數(shù)據(jù)亂碼問題,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • Redis主從/哨兵機制原理分析

    Redis主從/哨兵機制原理分析

    本文介紹了Redis的主從復(fù)制和哨兵機制,主從復(fù)制實現(xiàn)了數(shù)據(jù)的熱備份和負(fù)載均衡,而哨兵機制可以監(jiān)控Redis集群,實現(xiàn)自動故障轉(zhuǎn)移,哨兵機制通過監(jiān)控、下線、選舉和故障轉(zhuǎn)移等步驟,確保Redis集群的高可用性
    2025-01-01

最新評論

柳州市| 鱼台县| 宜都市| 凤阳县| 双流县| 涪陵区| 六枝特区| 柳林县| 茌平县| 凯里市| 潢川县| 栾城县| 辽宁省| 礼泉县| 神池县| 宜川县| 闽清县| 金溪县| 织金县| 安达市| 枣阳市| 元谋县| 衡阳县| 闽清县| 太康县| 吴川市| 龙泉市| 霸州市| 宁阳县| 烟台市| 陆良县| 澄江县| 肇东市| 娱乐| 依安县| 子长县| 秦皇岛市| 石阡县| 百色市| 高陵县| 岗巴县|