Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: синхронизация Perl и PHP через memcached сервер

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
AterCattus
Отправлено: 10 Августа, 2009 - 14:01:53
Post Id



Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Янв. 2008  
Откуда: Санкт-Петербург


Помог: 0 раз(а)




Доброго времени суток.

Возникла проблема и решил написать в поисках совета.

На сервере с Linux работает memcached демон, в него сохраняет данные Perl-скрипт. Но проблема в том, что PHP-скрипт после этого не может ничего считать. Подключается, но данных никаких нет.

CODE (perl):
скопировать код в буфер обмена
  1. my $memd = new Cache::Memcached {
  2.         'servers' => [ "127.0.0.1:11211" ],
  3.         'debug' => 0,
  4.         'compress_threshold' => 10_000,
  5. };
  6. ...
  7. $memd->set( $uid, $content );
  8.  


PHP:
скопировать код в буфер обмена
  1.     $memcache = new Memcache();
  2.     $memcache->connect( "127.0.0.1", 11211 );
  3.     ....
  4.     var_export( $memcache->get( '1' ) );


В чём может быть проблема? Разные сессии или ещё что-то...

Заранее спасибо.
(Добавление)
Интересное дополнение:

на стороне Perl:
CODE (perl):
скопировать код в буфер обмена
  1. $memd->set( 'count', scalar @urls );
  2. print Dumper( $memd->get_multi( ( 'count' ) ) );
  3. print Dumper( $memd->get_multi( ( 0, 1, 2 ) ) );


всё отлично отрабатывает.

а на стороне PHP:
PHP:
скопировать код в буфер обмена
  1. var_export( $memcache->get( 'count' ) ); // срабатывает, возвращает строку со значением
  2. var_export( $memcache->get( 1 ) ); // возвращает false
  3. var_export( $memcache->get( '1' ) ); // возвращает false

(Отредактировано автором: 10 Августа, 2009 - 14:05:01)

 
 Top
valenok Модератор
Отправлено: 10 Августа, 2009 - 14:30:32
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Can I access the same data in memcached with different client libraries?

Technically, yes, but the two issues you may run into are as follows:

* Different libraries will likely serialize data differently, for example, the Perl Cache::Memcached will use Storable to serialize complex structures (like hash references, objects, etc). This format will most likely not be readable by other language's client API. If you are storing complex data and need it to be readable by multiple APIs, you may consider storing simple strings in a format that can easily be parsed by external libraries, such as JSON or XML.
* Similarly, your data may be compressed from one client but not from another.
* Different libraries may hash keys differently. If you are connecting to multiple servers, your keys are likely hashed and then stored according to the algorithm implemented by that language's API. Its possible that different client libraries use a different scheme for making this determination, so keys going to server A from Perl might end up on server B from Python, etc. The Perl API also allows you to weight servers differently, which could also be a factor.

http://code[dot]google[dot]com/p/memcach[dot][dot][dot]ferent_client_li


-----
Truly yours, Sasha.
 
My status
 Top
AterCattus
Отправлено: 10 Августа, 2009 - 15:01:14
Post Id



Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Янв. 2008  
Откуда: Санкт-Петербург


Помог: 0 раз(а)




Подозрения были развеяны.

Попробовал влоб отключить сжатие в Perl - заработало. Вот такие дела.

Спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB