모든 것이 올바른 방법으로 설정되었지만 복잡한 값 (구조 또는 배열)을 설정하면 해당 키/값 쌍을 다른 서버에서 사용할 수 없게됩니다. 이제 모든 값을 JSON으로 serialize하고 제대로 작동합니다. 아마도 Memcached 버전 1.4.5에서는 변경되었지만 버전 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를 사용하는 경우 Future에서 getStatus() 함수를 호출하여 요청에 오류가 있는지를 확인할 수 있습니다. – mikewied