首页 > 解决方案 > Laravel memcached 在共享主机中不起作用

问题描述

我一直在尝试在生产(共享主机)CACHE_DRIVER中将缓存驱动程序(仍在 Laravel 7.4.x 上运行

到目前为止,我已经完成了以下工作:

  1. 在 .env 文件上,我将其更改CACHE_DRIVER=fileCACHE_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'),它的错误
  3. 变回CACHE_DRIVER=file并重新开始。结果cache()->has('countries')

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

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

标签: laravelmemcachedshared-hosting

解决方案


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

正如@apokryfos 提到的,扩展程序可能存在,但 Memcached 服务器可能并非在所有共享主机中都可用,这是我的情况。

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


推荐阅读