【问题标题】:o.lettuce.core.RedisException::io.netty.util.internal.OutOfDirectMemoryError while retrieving a big object(2MB)from Rediso.lettuce.core.RedisException::io.netty.util.internal.OutOfDirectMemoryError 从 Redis 检索大对象 (2MB)
【发布时间】:2020-02-02 22:40:27
【问题描述】:

我有一个连接到 Redis 缓存 (Azure redis) 并检索对象的 Springboot 应用程序。对象大小为 2MB 。我有时会收到以下错误。

io.lettuce.core.RedisException: io.netty.util.internal.OutOfDirectMemoryError:分配失败 524288000 字节的直接内存(使用:553648128,最大值: 1073741824)"}.

并非每次都发生。为什么要分配 524288000 字节来检索 2MB 对象?当它工作时,我会在 1 秒内得到响应。

详情:

春季启动版本:2.1.5

春季数据 redis : 2.1.8

生菜核心:5.1.6

io.Netty:4.1.36

部署环境详情:

环境:Pivotal Cloud Foundry 环境

内存:2GB,直接内存为 1GB

Redis:

具有 6GB 内存的 Azure 高级 Redis。

代码sn-p:

要检索对象,我使用以下代码:

redisTemplate.opsForValue().get(keyname);

然后使用 ObjectMapper 转换为 Object。

以及所有默认属性。

【问题讨论】:

    标签: spring-boot redis netty spring-data-redis


    【解决方案1】:

    由于分配似乎是作为生菜的一部分发生的,我建议在那里打开一个错误报告。这听起来不正确。

    【讨论】:

    • 谢谢@Norman。实际上,我将 Lettuce 连接配置更改为 Jedis 配置,并且应用程序运行良好。所以正如你所说,它看起来像生菜的问题
    猜你喜欢
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    相关资源
    最近更新 更多