Laravel memcached 在共享主机中不工作

Laravel memcached not working in shared hosting

我一直在尝试将生产中的缓存驱动程序 (CACHE_DRIVER) 从 file 更改为 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:clearphp artisan cache:clear;
  2. 已检查现有缓存标记。例如cache()->has('countries') 及其 false;
  3. 改回 CACHE_DRIVER=file 并重新开始。 cache()->has('countries') 及其 true
  4. 的结果

可能我在这个过程中遗漏了一些东西,但在本地它是 运行 在 Memcached 上,为了提高性能,我正在尝试在生产中改变它。

提前感谢任何可能帮助我解决此问题的意见。

我不会删除问题(在此处回答),因为它可能会帮助其他在共享主机上面临同样问题的人。

正如@apokryfos 提到的那样,扩展可能存在,但 Memcached 服务器可能无法在所有共享主机中使用,这是我的情况。

如果您的项目在共享主机上并且想要使用 Memcached,请联系他们的支持并询问您的计划是否考虑使用 Memcached 服务器。否则,使用其他缓存系统,即最后的文件缓存。