修改 Redis 集群最大内存配置及策略需要针对集群中的每个节点单独进行设置。主要通过两种方式进行:一是修改每个节点的 redis.conf 配置文件,设置 maxmemory 和 maxmemory-policy 参数后重启服务;二是使用 CONFIG SET 命令动态修改,无需重启但重启后失效。对于集群环境,必须确保所有节点配置一致,通常推荐设置 maxmemory-policy 为 allkeys-lru 或 volatile-lru,以防止内存溢出导致服务不可用。配置完成后需使用 CONFIG GET 验证生效情况。
Redis 集群设置 maxmemory 参数的实现
redis 集群中设置内存限制需要为每个节点单独配置 maxmemory 参数。以下是详细的操作指南:设置步骤 1.连接到每个集群节点 1 2 3 4 5 6 #获取所有集群节点信息 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.为每个节点设置 maxmemory 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #连接到第一个节点 redis-cli -h 127.0.0.1 -p 7001 #设置 2gb 内存限制 127.0.0.1:7001> config set maxmemory 2gb ok #设置淘汰策略 (推荐 allkeys-lru) 127.0.0.1:7001> config set maxmemory-policy allkeys-lru ok #验证设置 127.0.0.1:7001> config get maxmemory 1) "maxmemory" 2) "2147483648" #对其他节点重复相同操作 3.修改配置文件 (永久生效) 在每个节点的 redis.conf 文件中添加:1 2 3 4 5 6 7 8 9 10 #设置最大内存为 2gb maxmemory 2gb #设置内存淘汰策略 maxmemory-policy allkeys-lru #集群模式特定配置 cluster-enabled yes cluster-node-timeout 15000 cluster-config-file nodes.conf 4.批量设置脚本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #!/bin/bash #节点列表 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" #内存限制 policy=(搜索结果收录于 2026 年 1 月 16 日)
如何更改 Redis 最大可用内存 ?
要配置 Redis 使用的最大内存量,你可以在 Redis 配置文件 (redis .conf) 中使用 maxmemory 指令。该指令接受一个整数值,表示 Redis 将用于在内存中存储数据的最大字节数。例如,要将最大内存设置为 1GB(或 1024 * 1024 * 1024 字节),可以使用以下配置:maxmemory 1073741824 AI 写代码 1 你也可以使用 maxmemory-policy 指定当达到最大内存限制时,Redis 应该如何处理这种情况的策略。该指令取值说明如下:noeviction:当达到最大内存限制,添加一个新键时,Redis 将返回一个错误。allkeys-lru:Redis 将删除最近最少使用的键,以便为新键腾出空间。volatile-lru:Redis 将删除最近使用最少的带有过期设置的键,以便为新的关键空间。allkeys-random:Redis 将随机选择要删除的键,以便为新键腾出空间。volatile-random:Redis 将随机选择带有过期设置的键来删除,以便为新键腾出空间。volatile-ttl:Redis 将删除存活时间最短的键,以便为新键腾出空间。例如,要将 maxmemory-policy 设置为 allkeys-lru,可以使用以下配置:maxmemory-policy allkeys-lru(发布时间是 2026 年 2 月 25 日)
浅谈 Redis 的 maxmemory 设置以及淘汰策略
我们将解释 maxmemory 的作用和设置方法,并详细介绍 Redis 中常用的内存淘汰策略。通过代码示例和实际应用案例,读者将对 Redis 中的 maxmemory 设置和淘汰策略有更深入的了解。1. 引言 作为一种高性能的内存数据库,Redis 在存储大量数据时,需要合理管理内存资源。maxmemory 是 Redis 中一个重要的配置参数,用于设置 Redis 实例的最大内存使用量。为了保证 Redis 的性能和稳定性,我们需要了解 maxmemory 的设置方法以及与之相关的内存淘汰策略。2. maxmemory 的设置方法 在 Redis 中,我们可以通过以下几种方式来设置 maxmemory: 2.1 Redis 配置文件设置 我们可以通过修改 Redis 配置文件 (redis.conf) 来设置 maxmemory。在配置文件中,可以找到以下配置项:代码语言:txt AI 代码解释 maxmemory
【Redis】Redis 配置参数详解:优化过期删除机制
1. mory 作用:设置 Redis 实例的最大内存限制。说明:当 Redis 使用的内存达到这个限制时,系统需要进行淘汰策略,以释放一些内存空间。过期的 Key 是淘汰的首要选择对象之一。配置示例:代码语言:javascript AI 代码解释 这个例子将 Redis 实例的最大内存限制设置为 2GB。2. maxmemory-policy 作用:配置在达到内存限制时选择哪些 Key 进行淘汰。说明:Redis 提供多种淘汰策略,例如 volatile-lru、volatile-ttl、volatile-random。以 volatile 开头的策略表示优先选择过期的 Key 进行淘汰。配置示例:代码语言:javascript AI 代码解释 这个例子选择了以 LRU(最近最少使用) 方式淘汰过期的 Key。3. hz 作用:配置 Redis 的执行频率,即每秒执行的命令数。说明:定期删除过期 Key 的任务受到这个参数的影响。用户可以根据实际情况调整这个频率,以平衡性能和实时性的需求。配置示例:代码语言:javascript AI 代码解释 这个例子将 Redis 的执行频率设置为每秒 10 次命令执行。如何调整配置参数?根据实际需求,用户可以通过修改 Redis 配置文件 (通常是 redis.conf) 来调整这些参数。在修改后,需要重新启动 Redis 实例以使更改生效。代码语言:javascript AI 代码解释 4. maxmemory-samples 作用:配置在执行 LRU(Least Recently Used) 算法时,Redis 要检查的样本数目。说明:maxmemory-policy 中的 volatile-lru 和 allkeys-lru 使用 LRU 算法来决定淘汰哪些 Key。maxmemory-samples 指定了从多少个随机选择的 Key 中进行样本检查。默认值为 5,可以根据实际需求进行调整。配置示例:代码语言:javascript AI 代码解释 5. maxmemory-eviction-limit 作用:设置在一次淘汰操作中最多能够淘汰的 Key 的数量。说明:有时,希望每次淘汰操作释放的内存数量有一个上限。这个参数就是为了限制淘汰的 Key 数量。默认值为 0,表示没有限制。配置示例:代码语言:javascript AI 代码解释 6. maxmemory-slack 作用:用于调整内存回收的“松弛度”。说明:当 Redis 的内存使用超过 maxmemory 限制时,系统会启动淘汰策略。maxme 1. maxmemory(撰于 2021 年 1 月 29 日)
FAQ
Redis 集群修改 maxmemory 需要重启吗?
使用 CONFIG SET 命令不需要重启,但修改配置文件需要重启。
推荐哪种淘汰策略?
通常推荐 allkeys-lru 或 volatile-lru。
maxmemory 默认值是多少?
默认值为 0,表示无限制。