Установка и настройка memcache

Дата: 12.05.2017 Автор Admin

Давайте рассмотрим настройку memcached на примере связки memcached + PHP7.

Для начала давайте вспомним для чего нужен memcached.

memcached — это сервис кэширования данных в оперативной памяти на основе хеш-таблиц.

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

Установим memcached на ubuntu server

Перезапустим сервис memcached

Убедиться что сервис memcached запущен можно командой:

Перезапустим сервис PHP7

Теперь создайте страницу с PHP Info

На ней должна появится запись о подключенном модуле memcached

Теперь рассмотрим простой пример на PHP

После установки memcached работает на localhost на порту 11211, к нему мы и подключимся.

Далее мы запишем ключ MYnewDATA с данными — Value Found!  I am saved in memcached!

При первой загрузке страницы вы должны увидеть надпись — Value not found in memcached…»

При повторной загрузке страницы вы увидите надпись — Value Found!  I am saved in memcached!

Это самый простой пример сохранения данных из PHP в memcached , на самом деле методов работы с memcached через PHP намного больше, более подробно все описано тут.

Для просмотра сохраненных ключей можно использовать telnet

Далее выполнить команд:

Для просмотра текущих показателей memcached выполните команду:

Для удаления всех значений можно использовать команд:

Теперь давайте рассмотрим как работает memcached и как мы можем оптимизировать его работу.

Memcached использует алгоритм выделения памяти SLAB.

В самом SLAB храняться так называемые чанки, в которых храняться данные.

Когда мы сохраняем что-то в memcached , то выбирается пустой SLAB , а в нем пустой чанк.

Чтобы было проще понять иерархию хранения данных в Memcached , то выглядит она так:

Для обеспечения высокой скорости работы memcached выделяет чанки одинакового размера, если значение которое нужно сохранить в чанк меньше чем сам чанк, то остается свободное место.
Именно свободное место и можно использовать для оптимизации.

Для определения размера минимального размера чанка используется параметр -n , установить минимальный размер чанка в 16 байт можно так:

Уменьшать размер  чанка имеет смысл только для очень маленьких данных, например для хэшей, логинов, флагов.

Следующий параметр оптимизации -f , это фактор роста, с его помощью можно более эффективно создавать размеры SLAB

Это имеет смысл когда вы используете для хранения объекты разного размера, от очень маленьких данных до очень больших.

Еще один полезный параметр это -L, он позволяем выделить всю память под memcached сразу при старте.

Это значит что в процессе работы memcached не будет заниматься инициализацией SLAB и чанков.

Еще в конфиге memcached (/etc/memcached.conf) вы можете поменять следующие параметры:

Обратите внимание, если вы выделили memcached 4 GB памяти, а хотите записать данных на 5 GB, то memcached начнет удалять данные по принципу Least Recently Used (LRU)
Это означает что в первую очередь memcached удалит те данные, которые запрашивались очень давно.

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


Добавить комментарий

Ваш адрес email не будет опубликован.