" />

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

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

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

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

設(shè)置步驟

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

# 獲取所有集群節(jié)點(diǎn)信息
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é)點(diǎn)設(shè)置 maxmemory

# 連接到第一個節(jié)點(diǎn)
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

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

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

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

在每個節(jié)點(diǎn)的 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é)點(diǎn)列表
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
    
    # 驗(yàn)證配置
    redis-cli -h $ip -p $port CONFIG GET maxmemory
    redis-cli -h $ip -p $port CONFIG GET maxmemory-policy
done

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

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

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

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

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

# 檢查單個節(jié)點(diǎn)內(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. 集群擴(kuò)容策略

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

# 添加新節(jié)點(diǎn)
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é)點(diǎn)設(shè)置不同內(nèi)存限制

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

# 低負(fù)載節(jié)點(diǎn)設(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é)點(diǎn)
淘汰率過高evicted_keys 快速增加調(diào)整淘汰策略或增加內(nèi)存
槽位不均衡部分節(jié)點(diǎn)內(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è)置警報(bào)規(guī)則(內(nèi)存 > 85% 時報(bào)警)

  2. 備份策略

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

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

    # 安全重啟集群節(jié)點(diǎn)
    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)鍵點(diǎn):

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

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

到此這篇關(guān)于Redis集群設(shè)置maxmemory參數(shù)的實(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位圖實(shí)現(xiàn)系統(tǒng)用戶登錄統(tǒng)計(jì)

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

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

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

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

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

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

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

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

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

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

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

    這篇文章主要介紹了Redis教程(十):持久化詳解,本文講解了Redis提供了哪些持久化機(jī)制、RDB機(jī)制的優(yōu)勢和劣勢、AOF機(jī)制的優(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主從/哨兵機(jī)制原理分析

    Redis主從/哨兵機(jī)制原理分析

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

最新評論

大洼县| 威海市| 汝城县| 阿瓦提县| 桂阳县| 图木舒克市| 邹城市| 鄂州市| 浦县| 姚安县| 合作市| 洛隆县| 东至县| 梁山县| 肇源县| 于都县| 新兴县| 大埔县| 佛冈县| 兴国县| 公主岭市| 新兴县| 屯留县| 时尚| 勐海县| 惠州市| 涞水县| 竹山县| 铁力市| 潞西市| 武强县| 舞钢市| 平山县| 来凤县| 洛浦县| 宁海县| 泰兴市| 中方县| 华坪县| 宁海县| 屏山县|