[英]Connect 2 Memcached servers on Laravel
我想將 Memcached 一個用於 session,另一個用於緩存
我試圖在 Config/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,
],
],
],
'memcachedz2' => [
'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_HOST1', '127.0.0.1'),
'port' => env('MEMCACHED_PORT1', 11211),
'weight' => 100,
],
],
],
和我添加的 in.env 文件
CACHE_DRIVER=memcached
CACHE_PREFIX=areviwez_cache
SESSION_DRIVER=memcachedz2
MEMCACHED_HOST=35.192.75.119
MEMCACHED_PORT=11211
MEMCACHED_HOST1=127.0.0.1
MEMCACHED_PORT1=11211
我收到這個錯誤
Driver [memcachedz2] not supported
但它沒有用
有可能讓它像這樣工作嗎?
config/session.php
中指定的 session 驅動程序與緩存驅動程序配置無關,因此將支持memcached
(意味着使用 memcached session 驅動程序),但在您的情況下不支持memcachedz2
,因為沒有 session 驅動程序定義為memcachedz2
(只有一個緩存驅動程序)。
您有 2 個選擇:
'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_HOST1', '127.0.0.1'),
'port' => env('MEMCACHED_PORT1', 11211),
'weight' => 100,
],
],
],
'memcachedz2' => [
'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 文件中:
CACHE_DRIVER=memcachedz2
CACHE_PREFIX=areviwez_cache
SESSION_DRIVER=memcached
memcachedz2
定義緩存驅動程序: Session::extend('memcachedz2', function ($app) {
return new CacheBasedSessionHandler(\Cache::driver('memcachedz2'), config(''session.lifetime'));
});
對於您相對簡單的用例,方法 1 可能是最簡單的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.