Redis info memory信息说明

127.0.0.1:6379> info memory

# Memory
used_memory:87795176                # Redis分配的内存总量(byte),包含redis进程内部的开销和数据占用的内存
used_memory_human:83.73M            # Redis分配的内存总量(mb)
used_memory_rss:222318592           # 向操作系统申请的内存大小(byte)
used_memory_rss_human:212.02M       # 向操作系统申请的内存大小(mb)
used_memory_peak:337032496          # redis的内存消耗峰值(byte)
used_memory_peak_human:321.42M      # redis的内存消耗峰值(mb)
used_memory_peak_perc:26.05%        # 使用内存与峰值内存的百分比(used_memory / used_memory_peak) *100%
used_memory_overhead:2010038        # Redis维护数据集的内部机制所需的内存开销,包括所有客户端输出缓冲区、查询缓冲区、AOF重写缓冲区和主从复制的backlog
used_memory_startup:1960232         # Redis启动完成使用的内存
used_memory_dataset:85785138        # 数据占用的内存(used_memory - used_memory_overhead)
used_memory_dataset_perc:99.94%     # 数据占用的内存大小百分比,(used_memory_dataset / (used_memory - used_memory_startup))*100%
allocator_allocated:88139168        # 分配器分配的内存
allocator_active:89964544           # 分配器活跃的内存
allocator_resident:3890
### Redis 中 `maxmemory` 设置及其淘汰策略 #### 配置说明 Redis 提供了一个参数 `maxmemory` 来控制实例可以使用的最大内存大小。当达到此限制时,Redis 将依据指定的淘汰策略来移除部分数据以释放空间[^1]。 - **`maxmemory` 参数**: 此参数用于定义 Redis 实例允许的最大内存占用量。可以通过在配置文件中设置或者通过命令动态修改实现。例如,在配置文件中添加如下内容即可生效: ```conf maxmemory 1gb ``` - **单位支持**: 支持多种单位表示法,如字节 (`bytes`)、千字节 (`kb`)、兆字节 (`mb`) 和吉字节 (`gb`) 等[^2]。 #### 淘汰策略 (Eviction Policies) Redis 的淘汰机制由 `maxmemory-policy` 控制,默认情况下不启用任何淘汰策略(即默认为 `noeviction`)。以下是常见的几种淘汰策略: - **`noeviction`**: 当内存耗尽时返回错误给客户端而不删除键值对[^3]。 - **`allkeys-lru`**: 移除最近最少访问的数据项以腾出更多可用资源[^4]。 - **`volatile-lru`**: 只针对设置了过期时间的键执行 LRU 清理操作[^5]。 - **`allkeys-random`**: 随机选取并清除任意类型的键[^6]。 - **`volatile-random`**: 对于具有 TTL 值的那些特定对象随机挑选出来销毁掉[^7]。 - **`volatile-ttl`**: 根据剩余存活期限优先级选择即将到期的对象进行回收处理[^8]。 #### 使用示例 下面展示如何调整这些选项并通过 CLI 工具验证效果: ```bash # 修改运行中的 redis-server 配置 CONFIG SET maxmemory 50mb CONFIG SET maxmemory-policy allkeys-lru ``` 如果希望永久保存更改,则需编辑对应的 `.conf` 文件并将上述指令写入其中。 ```python import redis r = redis.StrictRedis(host='localhost', port=6379, decode_responses=True) print(r.config_get('maxmemory')) print(r.config_get('maxmemory-policy')) # 动态更新配置 r.config_set('maxmemory', '100mb') r.config_set('maxmemory-policy', 'volatile-lru') new_maxmemory = r.config_get('maxmemory')['maxmemory'] new_policy = r.config_get('maxmemory-policy')['maxmemory-policy'] print(f"Updated Max Memory: {new_maxmemory}") print(f"New Policy Applied: {new_policy}") ``` 以上脚本展示了 Python 客户端连接到本地 Redis 并查询当前状态以及重新设定新规则的过程[^9]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

訾零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值