Примеры хранения не столь критичной сложной структуры данных в движке приложения Memcache (java) для межсессионных взаимодействий - PullRequest
1 голос
/ 20 ноября 2011

Не очень важные данные могут быть сохранены в memcache. Однако как можно хранить сложные данные при одновременном обновлении различными сеансами пользователя.

Скажите график, дерево или связанный список? Можно пропустить узел, но это плохо - потерять весь граф / дерево / список, если узел выселен. Примером здесь является отправка уведомления об обновлении пользователей онлайн-пользователям.

Аппстаты движка приложений используют заданное 1000 сегментов, что хорошо (я думаю, что между ними нет зависимости). Но я думаю о более сложных случаях ...

Любой учебник, пример или теория будут считаться полезными ...

(тег Memcached был добавлен, но я знаю, что это не для движка приложения)

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Если вы храните график и не возражаете против пропажи узлов, просто сохраняйте каждый узел под собственным ключом memcache.

Если все данные, удаляемые одновременно, являются «плохими», хотявы, вероятно, не должны использовать memcache в первую очередь.Полные вайпы редки, но могут случиться.

1 голос
/ 20 ноября 2011

Если вы хотите хранить более сложные данные, вам нужно сериализовать их, прежде чем помещать в общую память.

Когда вы захотите обновить эти данные, вам потребуется десериализовать обратно в вашу сложную структуру,обновите структуру, а затем снова выполните сериализацию, чтобы поместить структуру обратно в общую память.

Мне интересно - почему memcache?Есть много других систем хранения с общей памятью, таких как MemBase, Redis и Hazelcast, с Hazelcast, добавляющими некоторую помощь, чтобы скрыть некоторые сложности хранения некоторых более сложных структур (таких как списки и карты).Hazelcast также добавляет полезные функции, такие как блокировки кластера и прослушиватели данных, которые могут оказаться полезными (полное раскрытие: я выбрал Hazelcast).

Конечно, если вы хотите тратить реальные деньги на лицензирование, у вас всегда есть Terracotta, которыйможет полностью отвлечь вас от этой сложности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...