Memcached часто використовують для швидкого зберігання тимчасових даних у пам’яті, однак звичайна конфігурація не забезпечує автоматичну синхронізацію між кількома серверами. Для цього можна застосувати Repcached — модифіковану версію Memcached із підтримкою реплікації.

У прикладі використовуються два сервери Ubuntu 11.04. На кожному вузлі встановлюють необхідні пакети для збирання програми, серед яких libevent-dev, компілятор g++ і make. Після цього завантажують вихідний код Repcached, запускають конфігурацію з параметром підтримки реплікації, компілюють програму та встановлюють її в систему.

Для кожного сервера створюється окремий конфігураційний файл. У ньому задаються обсяг пам’яті, стандартний порт Memcached, користувач запуску, PID-файл і адреса другого вузла. Саме ця адреса використовується для передачі змін між серверами.

Далі потрібно створити сценарій запуску служби. Він відповідає за запуск, зупинку та перезапуск Repcached, а також читає параметри з конфігураційного файлу. Після додавання сценарію до автозавантаження служба автоматично стартуватиме разом із системою.

Перевірити реплікацію можна через Telnet. На першому сервері створюється тестове значення в Memcached, після чого на другому сервері виконується запит на його отримання. Якщо другий вузол повертає те саме значення, синхронізація працює правильно.

Після налаштування Repcached PHP можна перевести на зберігання сесій у Memcache. Для цього в конфігурації PHP змінюється стандартний обробник сесій із files на memcache та вказується адреса локального Memcached-сервера.

Після перезапуску вебсервера або PHP-обробника сесії починають зберігатися в оперативній пам’яті. Завдяки реплікації одна й та сама сесія буде доступна на обох вузлах, тому користувач не втратить авторизацію навіть після перемикання запиту на інший сервер.

Така конфігурація підходить для сайтів із балансуванням навантаження, де кілька вебсерверів мають працювати з єдиним набором сесій. Водночас перед використанням у сучасному середовищі варто врахувати вік описаних версій Ubuntu, PHP і Repcached та перевірити їхню сумісність із поточною системою.