invalid stream header: 31323334


记录一下,都配置好了之后,用java客户端设置key-value,在服务器get没有问题,然后再服务器端设置一个key-value,java客户端获取出错

转载一下网上同样问题的描述,以及解决方案

 

严重: ++++ exception thrown while trying to get object from cache for key: test1
2013-6-26 23:18:37 com.schooner.MemCached.AscIIClient get
严重: invalid stream header: 6675636B
java.io.StreamCorruptedException: invalid stream header: 6675636B
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:783)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
at com.schooner.MemCached.ObjectTransCoder.decode(Unknown Source)
at com.schooner.MemCached.AscIIClient.get(Unknown Source)
at com.schooner.MemCached.AscIIClient.get(Unknown Source)
at com.schooner.MemCached.AscIIClient.get(Unknown Source)
at com.danga.MemCached.MemCachedClient.get(Unknown Source)
at com.libo.memcache.MemcachedCli.get(MemcachedCli.java:39)
at com.libo.memcache.MCTest.main(MCTest.java:17)


在网上查原因发现 
在memcached中,不同的客户端在set或者add值时,对命令的第二个参数的使用是不一致的
<command name> <key> <flags> <exptime> <bytes>
< data block>
JAVA客户端flags字段填写的都是32,不是32的是无法通过java客户端get出来的
所以在通过memcached admin进行数据set时,需要显示指定flags值为32
set testkey 32 0 5
12345
如此放入缓存后,通过java客户端是可以取出来的。   


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM