Как получить имя задействованного сервера Memcache из пула при записи ключа?

DiMA

php.spb.ru
Команда форума
Как получить имя задействованного сервера Memcache из пула при записи ключа?

$memcache->addServer("localhost", 10000);
$memcache->addServer("localhost", 10001);
и т.д.

как после
$memcache->set("key", $value);
получить имя сервера, куда был записан последний ключ?

-~{}~ 21.04.09 14:11:

и попутно

в пхпинфо() я вижу

Registered save handlers: files user memcache

Я правильно понимаю, ручками обработчик сессий писать не надо, все готовенькое? Если да, то вопрос:

Как настроить это
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', 'tcp://localhost:10001');
на пул серверов?

И чтобы номер сервера выбирался не от балды или в пхп коде, а по-умному, аналогично опциям мемкеша:

memcache.hash_function=crc32
memcache.hash_strategy=consistent
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
в офлайновом мануале есть Memcached::getServerByKey
а в онлайн-версии его нет

-~{}~ 21.04.09 14:16:

секция Sessions support там тоже есть
просто скачай ман в chm-формате
 

fixxxer

К.О.
Партнер клуба
если хочется умное распределение с сохранением маппинга при добавлении сервера, можно использовать pecl/memcached - там есть ketama (в мануале чото не вижу, но в сорцах точно есть)
 

Santiago

Новичок
grigori
В онлайне все есть.
http://ru.php.net/manual/en/memcache.ini.php
Только ты говоришь про новый модуль Memcached, а ТС, судя по "memcache.*=", ведет речь про старый модуль Memcache.

fixxxer
Ты про Memcached::DISTRIBUTION_CONSISTENT и Memcached::OPT_LIBKETAMA_COMPATIBLE ?

Вроде тоже все есть в мане ;)
http://ru.php.net/manual/en/memcached.constants.php
 

DiMA

php.spb.ru
Команда форума
Да, в Memcached есть все нужные мне функции, только подключить этот модуль никак не могу:

$m=new Memcached(); - пишет - класс неизвестен (new Memcache - работает).

Там еще есть memcached-api.php, но его подключать бессмысленно, это шаблон. Перерыл все доки по пеклу, мемкешу и проблемам в гугле с Memcached, но что-то у меня под виндой не работает. Поюзал 2 версии php_memcache.dll.
 

Santiago

Новичок
DiMA
Ааа, у тебя винда ))
Судя по всему ты подключаешь старый экстенщен (без "D" на конце).И конечно там нет класса Memcached.
Поищи dll для Memcached на http://pecl4win.php.net/, либо самому собирать по винду.
 

DiMA

php.spb.ru
Команда форума
да облазил весь нет, не существует в природе Memcached.dll, кроме 2х версий Memcache.dll

http://pecl4win.php.net/ уже полгода не работает

и собирать под винду не умею.. потом на фрю конечно перееду, но сейчас хочется проверить технологию
 

DiMA

php.spb.ru
Команда форума
по этой ссылке можно скачать демон мемкеша, а не либу для пхп php_memcached.dll

я юзаю для тестов memcached_1.2.4_Win32_Preview_20080309_bin.zip
 

fixxxer

К.О.
Партнер клуба
Ну... Попробуй сам собрать.

Вот здесь тот demiurg, который здесь su1d, в подробностях описывал процесс соответствующего траха в гамаке стоя. :)

Хотя я бы на твоем месте поставил под вмварью фрю или линукс и гонял там - всяко проще.
 

Gorynych

Посетитель PHP-Клуба
DiMA ну извиняйте... сам под Ubuntu сижу, а ссылка в загашнике осталась
 
Сверху