【问题标题】:Configure Memcached in Laravel在 Laravel 中配置 Memcached
【发布时间】:2016-05-12 21:53:17
【问题描述】:

我尝试用我的 Laravel 设置 memcached

设置驱动程序

/config/app.php

'default' => 'memcached',

配置内存缓存服务器

'stores' => [


    'database' => [
        'driver' => 'database',
        'table'  => 'caches',
        'connection' => null,
    ],


    'memcached' => [
        'driver'  => 'memcached',
        'servers' => [
            [
                'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100,
            ],
        ],
    ]

],

缓存

Route::get('cache/users', function() {
    return Cache::remember('users', 60, function() {
        return User::all();
    });
});

我怎么知道我用 memcache 正确配置了我的缓存? 如何查看我存储的内容?

【问题讨论】:

    标签: laravel laravel-5 memcached laravel-5.1


    【解决方案1】:

    对于 Memcache 在名为 memcached 的单独机器上的情况,即具有相应服务的 docker:in .env set MEMCACHED_HOST=memcached

    【讨论】:

      【解决方案2】:

      首先,您可以在php artisan tinker 或某种测试路线上使用Cache::has('users')Cache::get('users'),以查看是否将内容保存到缓存中(以及当前内容是什么)。

      其次,可以连接memcached(以及redis等其他驱动)via telnet直接查看。

      telnet 127.0.0.1 11211
      

      进入后,您可以发出命令,例如:

      get users
      

      应该吐出那个缓存键的内容。

      使用您显示的代码,不工作的缓存也应该导致异常。您可以通过关闭 memcached 实例并刷新页面来测试这一点 - 它应该会出错。

      【讨论】:

      • 也许我设置错了,当我运行 telnet 127.0.0.1 11211 时,我得到了 telnet: connect to address 127.0.0.1: Connection refused
      • 我试过我的Mac IP,我得到了同样的结果telnet 192.168.100.87 11211
      • @ihue 我不知道你是如何设置memcached的,所以很难告诉你要尝试什么,但你可以尝试telnet localhost 11211
      • 我试过了,我得到了Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused telnet: Unable to connect to remote host
      • 没关系。我只会更多地研究它。但如果你知道什么,我希望你不介意更新我。
      猜你喜欢
      • 2014-11-03
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      • 2017-07-07
      • 2012-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多