Синхронизация для Memecache Key - PullRequest
0 голосов
/ 01 февраля 2012

Я внедряю веб-сервер, использующий PHP, который использует memcache для хранения некоторых часто используемых данных. Каждый запрос может обновлять один ключ в memcache. Ключ является массивом, и мое обновление добавит / удалит некоторые элементы в / из массива.

У меня вопрос, если несколько запросов приходят и обновляют ключ одновременно. Предоставляет ли memcache какой-либо механизм синхронизации.

Я ищу в Google и здесь, но не нашел много полезной информации.

Лучший, Сяомо

1 Ответ

0 голосов
/ 01 февраля 2012

Вам нужно будет использовать значения cas для этого. Это работает путем запроса номера cas для ключа с сервера. Затем вы обновляете значение для этого ключа и делаете набор, который включает номер cas. Сервер будет обновлять ключ только в том случае, если cas не изменилась. Если это так, то вы знаете, что кто-то еще обновил данные раньше, чем вы, и вы можете снова получить значение и cas для ключа и повторить обновление.

* Примечание: я сказал здесь, что вы делаете набор и включаете номер кассы. Если вы посмотрите на двоичный пакет, который отправляется, это правда, но в большинстве SDK и в протоколе ASCII есть отдельные функции / команды cas. Вы хотите использовать их вместо установки функций / операций при обновлении.

Чтобы сделать cas в протоколе ASCII, смотрите здесь: http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt

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