【发布时间】:2020-09-20 13:37:08
【问题描述】:
我有 2 个 Memcached 服务器,例如 serv1 和 serv2 两者都工作正常
但是当我将它与 Laravel 缓存一起使用时,
当我使用 serv1 时它工作正常。
但是当我将服务器更改为 serv2 时。它不写Session
我一次使用一台服务器。我更改了服务器 IP。
当我手动存储数据并检索它时,serv2 工作正常,它只会在我与 Laravel 一起使用时给我带来问题。
两台服务器都安装了 Memcached 服务。
Laravel 的代码不会出错,因为它在 serv1 上运行。
我似乎无法找出问题所在,距离这个问题已经一周了。
Laravel 版本是 5.6。 操作系统是 CentOs 这是我 Laravel 的 Cache.php
服务器在我的环境文件中
'memcached' => [
'driver' => 'memcached',
'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
'sasl' => [
env('MEMCACHED_USERNAME'),
env('MEMCACHED_PASSWORD'),
],
'options' => [
// Memcached::OPT_CONNECT_TIMEOUT => 2000,
],
'servers' => [
[
'host' => env('MEMCACHED_HOST', '127.0.0.1'),
'port' => env('MEMCACHED_PORT', 11211),
'weight' => 100,
],
我已经使用 serv2 来存储来自原生 PHP 的会话,它在那里运行良好。
Laravel 使用 Cache:put 将值存储到缓存中,但不使用 Session 到 serv2
【问题讨论】:
-
serv2 不能仅用于存储会话吗?设置为 Laravel 缓存时是否有效?
-
它不适用于 Laravel Only,即使用于存储缓存也是如此。我在 Vanilla PHP 中使用 serv2 来使用 htaccess 存储会话,它在那里工作正常。
-
你是如何在原版 PHP 中使用它的?你能分享一下 Laravel 配置与你使用普通代码正常使用它的方式吗?
-
'memcached' => [ 'driver' => 'memcached', 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), 'sasl' => [ env('MEMCACHED_USERNAME'), env( 'MEMCACHED_PASSWORD'), ], 'options' => [ // Memcached::OPT_CONNECT_TIMEOUT => 2000, ], 'servers' => [ [ 'host' => env('MEMCACHED_HOST', '127.0.0.1'), 'port' => env('MEMCACHED_PORT', 11211), 'weight' => 100, ],
-
我已经使用 env 设置了服务器。我从那里更改它,我看到 laravel 存储了密钥,但是当我从中读取时,密钥没有价值
标签: laravel session laravel-5 caching memcached