我正在尝试配置使用spymemcached从memcached服务器检索数据(尝试过1.2和1.4)。我在这里使用wiki中提供的值配置了它(http://code.google.com/p/spymemcached/wiki/SpringIntegration)。但是,如果我将该bean作为MemcachedClient
注入到我的类中,每次我尝试访问缓存时都会出现超时。我的代码行很简单:
MyClass object = (MyClass) memcachedClient.get(cacheKey);
此时该值不在缓存中,但我希望它返回null。相反,我得到的只是一个CXF异常(这是一个web服务),原因是:
Caused by: net.spy.memcached.OperationTimeoutException: Timeout waiting for value
at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1003)
at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1018)
日志中没有信息(虽然我仍然试图将它们放在DEBUG中,因为现在我只看到INFO的spymemcached日志)。有人有类似的问题吗?我可以通过telnet访问memcached服务器,get正确返回END
。
感谢。
答案 0 :(得分:2)
问题在于使用BINARY
协议。切换到TEXT
工作正常。我想memcached的已安装版本不支持这个协议 - 但这不是一件容易的事情!