首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java检查Redis内存使用情况

Java检查Redis内存使用情况
EN

Stack Overflow用户
提问于 2014-03-07 18:18:17
回答 1查看 1.3K关注 0票数 1

我需要Java代码来监控Redis的内存使用情况,因为Redis将所有数据存储在RAM中,如果内存已满,它就会崩溃。

看起来Redis使用整个OS内存,所以如果我在Java中使用"Runtime“方法,它是不正确的,因为它只计算JVM中的内存。

是否有任何Java方法来监视整个操作系统系统的内存使用情况,或者这些是某种神奇的Redis方法?

EN

回答 1

Stack Overflow用户

发布于 2014-03-07 19:06:15

您可以定期向redis发出请求,发送一个INFO命令,并解析结果以获得used_memory的值,即由Redis内存分配器分配的字节数。

更新: Redis不会崩溃,它会掉换--因此它的性能将急剧下降。您可以通过将used_memory_rss与used_memory进行比较来检测交换。used_memory_rss远大于used_memory意味着发生了交换。但在此之前,如果used_memory刚好低于Redis可用的总内存,就会发生交换。

如果您使用redis作为缓存,则可以通过在配置文件中添加以下行来限制其内存消耗:

代码语言:javascript
运行
复制
maxmemory 2mb 
maxmemory-policy allkeys-lru

在本例中,它将被限制为2MB。

update maxmemory将防止在达到限制时进行新的写操作,并以错误响应;它将根据LRU策略开始删除键,该策略被分配给缓存。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22257700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档