我正在尝试配置为使用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版本不支持该协议-但这并非易事!

08-03 16:51