Ну, вы можете писать книги об этом, но базовый принцип заключается в том, что существуют разные подходы.
Наиболее распространенный и понятный подход для кеширования - это осколки. Это означает, что данные хранятся только на одном сервере, и какой-то метод используется для определения того, какой сервер это. Таким образом, он может быть получен с этого самого сервера, и задействован только один сервер.
Это, очевидно, хорошо работает в средах с ключом/значением как memcached.
Общепринятой практикой является криптографический хэш ключа. Вычислите этот хэш MOD номер сервера, и результатом будет сервер, который вы будете хранить и извлекать данные.
Эта процедура обеспечивает более или менее равномерную балансировку.
Как это точно сделано в memcached i dunno, но какой-то хеш наверняка.
Но будьте осторожны, что этот teqnique недоступен. Поэтому, если один сервер не прошел, записи исчезли. Таким образом, вы, очевидно, можете использовать это только для кеширования.
Другие теги, где требуется, например, высокая доступность ресурсов, которые занимают много времени для расчета и автоматически нагреваются в фоновом режиме, включают репликацию.
Наиболее распространенной формой в средах кэширования является репликация master-master с разрешением конфликтов последних времен. Это означает, что каждый сервер получает данные с everyserver, которые еще не находятся на локальном сервере (это делается с использованием журналов репликации и смещений байтов). Если есть конфликт, используется последняя версия (незначительное смещение времени между серверами игнорируется).
Но в других средах, где для примера написано очень мало, но многое читается, часто присутствует каскад, где задействованы только один или несколько главных серверов, а остальная часть - просто чистая репликация.
Но эти настройки очень редки, потому что осколки, как описано выше, дают лучшую производительность, а в средах кеширования потери данных в основном переносимы. поэтому его также по умолчанию для memcached.
Спасибо, что спросили об этом. Итак, в целом, похоже, что больше писать/читать повсюду - это цель, а не избыточность? Я ищу избыточность и, по крайней мере, подтверждаю то, что думал. – Till
[Этот вопрос] (http://stackoverflow.com/questions/4038094/using-multiple-memcache-servers-in-a-pool/4038108#4038108) не совсем то же самое, но мой ответ там должен ответить на ваш вопрос вопрос. –
спасибо ... Знаете ли вы, если клиент memcached балансирует запросы на запись автоматически? или он переходит на первый сервер, пока он не заполнится, а затем на второй, пока второй не заполнится, а третий и т. д. – Stann