我正在尝试配置为使用spymemcached从memcached服务器检索数据(尝试了1.2和1.4)。我使用其Wiki此处(http://code.google.com/p/spymemcached/wiki/SpringIntegration)中提供的值对其进行了配置。但是,如果我将该豆作为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
。谢谢。
最佳答案
问题是使用BINARY
协议。切换到TEXT
可以正常工作。我猜想已安装的memcached版本不支持该协议-但这并非易事!