Я пытаюсь понять, какие объекты могут храниться в Java Memcache, но не могу найти прямые ответы.
Я пытался сохранить ConcurentHashMap в Memcache, где ConcurentHashMap имеет каждое значение, являющееся другим ConcurentHashMap до5 уровней.
Это был дизайн раньше, и я хотел внести как можно меньше изменений.
Однако я обнаружил странную проблему:
java.lang.IllegalArgumentException: Нельзя использовать в качестве значения: 'com.xx.xxxx@1a55d9d' на com.google.appengine.api.memcache.AsyncMemcacheServiceImpl.serializeValue (AsyncMemcacheServiceImpl.java:283) на сайте com.google.AsyncMemcacheServiceImpl.doPut (AsyncMemcacheServiceImpl.java:516) по адресу com.google.appengine.api.memcache.AsyncMemcacheServiceImpl.put (AsyncMemcacheServiceImpl.java:591.mache.Imp.Mache.Mache.Mache.Mache.Mache.Mache.Mache.Mache.Mache.Mache.Map.Mac.Mac.Map.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Mac.Cg.dll79)
Я встроил ConcurrentHashMap в класс и передал его Memcache.С обычным ConcurrentHashMap я столкнулся с той же проблемой.
Я просматривал разные форумы, но не смог найти ответ на вопрос, какие объекты можно хранить в Memcache, особенно из коллекций Java и подобных объектов (ConcurrentHashMap).Какие типы сложных Java-объектов я могу сохранить в Memcache?
Еще один вопрос, который у меня возникает, - что произойдет, когда я снова разверну новую версию в GAE?Уничтожены ли ранее сохраненные в Memcache значения?