Все было настроено правильно, но установка сложного значения (Structure или Array) сделала эти пары ключ/значение недоступными для другого сервера. Теперь я сериализую все мои значения в JSON, и он отлично работает. Возможно, в версии 1.2.5 Memcached она изменена, но для версии 1.2.6 сериализация значений - хороший способ ее исправления.
<!--- Setting up Memcached Client --->
<!--- Add code in OnApplicationStart in Application.cfc --->
<cfset AU = createObject("java", "net.spy.memcached.AddrUtil").init() />
<cfset Application.MemCacheD = createObject("java", "net.spy.memcached.MemcachedClient").init(AU.getAddresses("127.0.0.1:11211")) />
<!--- Adding values: --->
<cfset memCacheName = "myKey" />
<cfset myValue = StructNew() />
<cfset myValue['var1'] = 'var1 value' />
<cfset Application.MemCacheD.add(memCacheName, 3600, serializeJSON(myValue)) />
<!--- Getting values: --->
<cfset memCacheName = "myKey" />
<cfset MemCachedRet = Application.MemCacheD.get(memCacheName) />
<cfif isDefined('MemCachedRet')>
<!--- value is available from mamcached --->
<cfelse>
<!--- get value from db and save to memcached --->
</cfif>
Прежде всего я хочу отметить, что оба Memcached и spymemcached очень надежны и используются тысячи людей каждый день. Вы также пытаетесь сделать что-то очень простое, что было бы легко поймано во время тестирования или spymemcached или memcached, что заставляет меня думать, что в вашем коде есть ошибка. Можете ли вы разместить здесь код? Также, если вы используете серию 2.7 spymemcached, вы можете вызвать функцию getStatus() из Future, возвращенную вам, чтобы узнать, была ли ошибка в вашем запросе. – mikewied