вторник, 26 февраля 2013 г.

memcached + unix socket

Для примера - debian 6, bitrix, memcached
Для начала, apt-get install memcached php5-memcache

Теперь в /etc/memcached.conf
-s /var/run/memcached/memcached.sock
-a 0755
выставляем путь к сокету и права на него в 0755. Сам каталог /var/run/memcached/ надо создать и поставить владельцем nobody (задано в конфиге выше)

Запускаем.
/etc/init.d/memcached start

проверяем
netstat -an|grep sock
должен появиться наш сокет. При этом |grep 11211 уже ничего не покажет - похоже, мемкэш умеет или только сокеты, или только через порт.

Теперь диагностика. Можно проверить, что происходит, как через сокет, так и порт.
порт:
echo "flush_all" | nc 127.0.0.1 11211
echo "stats" | nc 127.0.0.1 11211

сокет:
echo 'stats' | nc -U /var/run/memcached/memcached.sock
Работает не везде, в дебиан 6 говорит, что не знает ключа -U

По линку ниже есть вариант через питон.

PS для битрикса вписываем в конфиг  bitrix/php_interface/dbconn.php
define("BX_MEMCACHE_HOST", "127.0.0.1");
define("BX_MEMCACHE_PORT", "11211");
=== или ===

define("BX_MEMCACHE_HOST", "unix:///path/to/memcached.sock");
define("BX_MEMCACHE_PORT", "0");


линки
http://community.webfaction.com/questions/7275/how-to-communicate-with-memcached-socket-via-shell

Комментариев нет:

Отправить комментарий