Laravel memcached не работает на общем хостинге

#laravel #memcached #shared-hosting

Вопрос:

Я пытался изменить драйвер кэша ( CACHE_DRIVER ) с файла на memcached в рабочей среде (общий хост), где Memcached установлен правильно и доступен в соответствии с phpinfo. Все еще работает на Laravel 7.4.x

До сих пор я делал следующее:

  1. В файле .env я изменил значение CACHE_DRIVER=file на CACHE_DRIVER=memcached ;
  2. Проверил конфигурацию в config/cache.php как показано ниже:
 <?PHP
'stores' => [
    'memcached' => [
        'driver'        => 'memcached',
        'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), // not required I think?...
        'sasl'          => [
            env('MEMCACHED_USERNAME'), // not required I think?...
            env('MEMCACHED_PASSWORD'), // not required I think?...
        ],
        'options'       => [
            // Memcached::OPT_CONNECT_TIMEOUT => 2000, // Ok
        ],
        'servers'       => [
            [
                'host'   => env('MEMCACHED_HOST', '127.0.0.1'), // set like in phpinfo
                'port'   => env('MEMCACHED_PORT', 11211),  // not required I think?...
                'weight' => 100, // Ok
            ],
        ],
    ],
    // ....
],
 
  1. Побежал php artisan config:clear и php artisan cache:clear ;
  2. Проверено наличие существующего тега кэша. например cache()->has('countries') , и его ложь;
  3. Вернулся на CACHE_DRIVER=file прежнее место и начал все сначала. Результат для cache()->has('countries') и его истинный

Либо, возможно, мне чего-то не хватает в процессе, но в локальном он работает на Memcached, и для повышения производительности я пытаюсь изменить его в производстве.

Заранее спасибо за любые материалы, которые могут помочь мне решить эту проблему.

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

1. Насколько я знаю phpinfo , могу сказать вам только то, правильно ли настроено расширение PHP для связи с memcache. Это на самом деле не скажет вам, доступен ли сам сервер memcache.

2. Спасибо, @apokryfos, возможно, в этом и проблема. Я предполагал, что с установленным расширением это будет работать. Нужно проконсультироваться с поставщиком. Об этом я как-то не подумал.

Ответ №1:

Я не буду удалять вопрос (отвечаю здесь), так как это может помочь другим, сталкивающимся с той же проблемой на общих хостингах.

Как упоминал @apokryfos, расширение может быть там, но сервер Memcached может быть недоступен на всех общих хостингах, что является моим случаем.

Если у вас есть свои проекты на общем хостинге и вы хотите использовать Memcached, обратитесь в их службу поддержки и спросите, предусматривает ли ваш план сервер Memcached. В противном случае используйте другие системы кэша, а именно и, в конечном счете, кэш файлов.