laravel - Laravel memcached 在共享主机中不起作用
问题描述
我一直在尝试在生产(共享主机)CACHE_DRIVER
中将缓存驱动程序(仍在 Laravel 7.4.x 上运行
到目前为止,我已经完成了以下工作:
- 在 .env 文件上,我将其更改
CACHE_DRIVER=file
为CACHE_DRIVER=memcached
; - 检查 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
],
],
],
// ....
],
- 跑
php artisan config:clear
和php artisan cache:clear
; - 检查现有缓存标记。例如
cache()->has('countries')
,它的错误; - 变回
CACHE_DRIVER=file
并重新开始。结果cache()->has('countries')
为真
可能我在这个过程中遗漏了一些东西,但是在本地它在 Memcached 上运行并且为了提高性能,我正试图在生产中改变它。
提前感谢您提供任何可能帮助我解决此问题的意见。
解决方案
我不会删除这个问题(在这里回答),因为它可能会帮助其他人在共享主机上面临同样的问题。
正如@apokryfos 提到的,扩展程序可能存在,但 Memcached 服务器可能并非在所有共享主机中都可用,这是我的情况。
如果您的项目在共享主机上并且想要使用 Memcached,请联系他们的支持并询问您的计划是否考虑 Memcached 服务器。否则,使用其他缓存系统,即最终文件缓存。
推荐阅读
- javascript - watermark.js logo 大小增减
- reactjs - 如何仅在我的上部组件上应用 onClick?
- r - 如何将 position_dodge() 和 geom_line() 与重叠分组结合起来?
- laravel - Laravel - 如何防止基于日期的多个活动休假请求
- django - 在模板中创建 url 链接时出现 NoReverseMatch 错误 Django
- mongodb - TypeError:this.client.blockedFromCommand.delete 不是函数
- reactjs - 映射数组时在 React 中切换 className
- vue.js - Vee-validate v3 访问提供者的标志
- firebase - 词典紧密度和子集
- asp.net-core - 在 asp.net core mvc 应用程序中记录到多个表