初步测试memcachedb时碰到的问题

本文记录了在使用Java客户端访问memcached时遇到的问题,当尝试缓存超过1MB的数据时,出现IllegalArgumentException异常。通过调整存储策略,最终解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在内网搭建memcachedb时,服务端搭建好后,用Java的客户端进行访问测试,在数据量设置为100,1000,10000时,都能正常访问,当我把数据量设置为10000条时,出现了下面的错误:

 

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
=================================== 开始存储 =================================================
Exception in thread "main" java.lang.IllegalArgumentException: Cannot cache data larger than 1MB (you tried to cache a 1965471 byte object)
	at net.rubyeye.xmemcached.transcoders.CachedData.<init>(CachedData.java:95)
	at net.rubyeye.xmemcached.transcoders.SerializingTranscoder.encode(SerializingTranscoder.java:229)
	at net.rubyeye.xmemcached.command.text.TextStoreCommand.encodeValue(TextStoreCommand.java:172)
	at net.rubyeye.xmemcached.command.text.TextStoreCommand.encode(TextStoreCommand.java:127)
	at net.rubyeye.xmemcached.impl.MemcachedTCPSession.wrapMessage(MemcachedTCPSession.java:150)
	at com.google.code.yanf4j.core.impl.AbstractSession.write(AbstractSession.java:405)
	at net.rubyeye.xmemcached.impl.MemcachedConnector.send(MemcachedConnector.java:325)
	at net.rubyeye.xmemcached.XMemcachedClient.sendCommand(XMemcachedClient.java:223)
	at net.rubyeye.xmemcached.XMemcachedClient.sendStoreCommand(XMemcachedClient.java:2181)
	at net.rubyeye.xmemcached.XMemcachedClient.set(XMemcachedClient.java:1128)
	at net.rubyeye.xmemcached.XMemcachedClient.set(XMemcachedClient.java:1186)
	at net.rubyeye.xmemcached.XMemcachedClient.set(XMemcachedClient.java:1173)
	at com.client.MemcachedDBClient.testCacheList(MemcachedDBClient.java:41)
	at com.client.MemcachedDBClient.main(MemcachedDBClient.java:24)
 

 

目前正在找资料解决这个问题,记录下来作为备案,以作继续处理的笔记。

 

此问题已经解决,主要原因是因为我在测试时,把一个List当作一个对象存储进去,当然,这个List对象保存的是10W条经过MD5后的Hash数据,超大了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值