You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.5使用Memcached作为缓存驱动的问题求助

解决Laravel 5.5配置Memcached缓存驱动的常见问题

我太懂你折腾一整天找不到解决方案的烦躁了——本来想好用Redis,结果发现Laravel 5.5里它没法同时当广播和缓存驱动,转投Memcached还卡壳,这事儿确实闹心。咱们一步步来排查,先把测试项目跑通,再迁移到你的现有应用。

1. 先把基础依赖搞定:Memcached服务+PHP扩展

这是90%配置失败的根源,别跳过:

  • 检查Memcached服务是否在跑:
    Linux上直接敲 systemctl status memcached,看输出里有没有active (running);Windows的话去服务列表里找Memcached。没启动的话,Linux用 systemctl start memcached 开起来,再加个 systemctl enable memcached 设成开机自启。
  • 安装PHP的Memcached扩展(划重点:是带d的那个!):
    别搞混memcache和memcached,Laravel认的是后者:
    • Ubuntu/Debian:sudo apt-get install php-memcached
    • CentOS/RHEL:sudo yum install php-pecl-memcached
    • Windows:去PECL找对应你PHP版本的dll文件,丢到ext目录,然后在php.ini里加一行 extension=php_memcached.dll
      装完重启Web服务器(Apache/Nginx)和PHP-FPM,再敲 php -m 看看输出里有没有memcached,有就说明成了。

2. 配置Laravel的缓存驱动

接下来改项目配置:

  • 修改.env文件:
    找到缓存相关的行,改成这样:
    CACHE_DRIVER=memcached
    MEMCACHED_HOST=127.0.0.1
    MEMCACHED_PORT=11211
    MEMCACHED_USERNAME=
    MEMCACHED_PASSWORD=
    
    默认Memcached没开认证,所以用户名密码留空就行,要是你自己设了再填。
  • 核对config/cache.php的配置:
    打开这个文件,确认memcached块是下面这样的(Laravel 5.5默认应该差不多,但还是核对下):
    'memcached' => [
        'driver' => 'memcached',
        'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
        'sasl' => [
            env('MEMCACHED_USERNAME'),
            env('MEMCACHED_PASSWORD'),
        ],
        'options' => [
            Memcached::OPT_COMPRESSION => true,
            Memcached::OPT_BINARY_PROTOCOL => true,
        ],
        'servers' => [
            [
                'host' => env('MEMCACHED_HOST', '127.0.0.1'),
                'port' => env('MEMCACHED_PORT', 11211),
                'weight' => 100,
            ],
        ],
    ],
    
    不用额外引入Memcached类,Laravel已经帮你处理好了。

3. 快速测试缓存是否正常工作

配置完别急着迁移,先在测试项目里验证:

  • 打开Laravel的tinker工具:php artisan tinker
  • 存个缓存:Cache::put('test_memcached_key', 'it works!', 60);
  • 取缓存:Cache::get('test_memcached_key');
    如果返回it works!,说明没问题;要是报错:
    • 提示Class 'Memcached' not found:回到第一步,PHP扩展肯定没装对。
    • 提示连接失败:检查Memcached是不是在127.0.0.1:11211上跑,防火墙有没有放行11211端口。

4. 迁移到现有项目的注意事项

测试通过后,给现有应用迁移时要注意:

  • 先备份现有项目的.env和config/cache.php,别把旧配置搞丢了。
  • 检查现有服务器上的Memcached服务和PHP扩展,毕竟测试环境和生产环境可能不一样。
  • 切换驱动后,执行php artisan cache:clear清理旧缓存,避免旧缓存和新缓存冲突。

内容的提问来源于stack exchange,提问作者Tony Langworthy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:38:22