Пытался найти этот ответ повсюду, но ударился о стену.
Код: (сохранен как Recent.php)
$MEMCACHE_SERVERS = array(
"1.2.3.4", //db prodmaster
"5.6.7.8", //db prodslave1
"9.10.11.12" //db1 dev
);
$memcache = new Memcache();
foreach($MEMCACHE_SERVERS as $server){
$memcache->addServer($server,11211);
}
$key = "rec_obj_".$cat_id;
$memcache->delete($key);
$memcache->set($key, $objects, MEMCACHE_COMPRESSED, $time=60*60*4);
Приведенный выше код, почему он обращается к различным кэшампри запуске из Cli против Apache?Когда я запускаю php /var/www/localhost/htdocs/url/recent.php из командной строки, он работает отлично, но затем я не могу получить данные с моего сайта через $ memcache-> get ($ key).И наоборот, когда я запускаю тот же скрипт из веб-браузера http://www.url.com/recent.php, он работает отлично, но его нельзя найти из командной строки?Результаты командной строки memcache можно найти с помощью запуска $ memcache-> get ($ key) в командной строке, результаты поиска в веб-браузере можно найти через $ memcache-> get ($ key) из веб-браузера.Кэши CLI и Web, кажется, разделены, как я могу это исправить?
Я проверил свой phpinfo (), оба php-apache2 и php-cli имеют extension = memcache.so.Кроме того, я подумал, что это может быть разницей в хешах, но оба говорят:
Directive Local Value Master Value
memcache.allow_failover 1 1
memcache.chunk_size 8192 8192
memcache.default_port 11211 11211
memcache.default_timeout_ms 1000 1000
memcache.hash_function crc32 crc32
memcache.hash_strategy consistent consistent
memcache.max_failover_attempts 100 100
Также пытались вывести состояние и проверить $ memcache-> getExtendedStats ();из команды и веб-браузера.Оба показывают все 3 сервера.Однако некоторые значения различаются, например, curr_items или reclaimed, но отключены на 10 или около того.
Чувствую, что я что-то упустил ... Я мог бы обойти и просто сохранить данные в таблицу MySQL, но это не ответит на вопрос, почему это происходит.
Я пытался предоставить всю информацию, которая, по моему мнению, необходима, но не стесняйтесь просить разъяснений.