【发布时间】: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