国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

laravel配置Redis多個庫的實現方法

2024-05-05 00:08:14
字體:
來源:轉載
供稿:網友

導語

經過編譯安裝安裝擴展之后,Redis 已經可以正常使用了。但是在 laravel 中還需要其他的操作。

安裝擴展

要想在 laravel 中使用 Redis,還需要安裝 predis 擴展。使用 composer require predis/predis 進行安裝就可以了。

修改配置

  1. Redis 的配置在 config/database.php 文件,根據需求修改,我這里不需要改動;
  2. 設置 Cache 默認緩存為 Redis,在 .evn 文件中 CACHE_DRIVER=redis
  3. 設置 Session 的驅動為 Redis,在 .env 文件中 SESSION_DRIVER=redis

配置多個庫

經過以上的配置后,多個服務都使用 Redis,如果都使用同一個庫,這顯然是不合理的。我們可以配置多個連接來解決這個問題。
Redis 默認有 16 個庫,在服務器中設置 redis.conf 的 database 值可以修改。

先來看下 config/database.php 的默認連接

'redis' => [    'client' => 'predis',    'default' => [      'host' => env('REDIS_HOST', '127.0.0.1'),      'password' => env('REDIS_PASSWORD', null),      'port' => env('REDIS_PORT', 6379),      'database' => env('REDIS_DB', 0),    ],    'cache' => [      'host' => env('REDIS_HOST', '127.0.0.1'),      'password' => env('REDIS_PASSWORD', null),      'port' => env('REDIS_PORT', 6379),      'database' => env('REDIS_CACHE_DB', 1),    ],    ],

默認是有兩個連接的,分別是 default 和 cache。下面來看下 config/cache.php 中關于 Redis 的配置

'redis' => [      'driver' => 'redis',      'connection' => 'cache',    ],

可以看到它的 connection 值是 cache,也就是使用 config/database.php 中 Redis 的 cache

下面修改 config/database.php 的 Redis,添加一個 session 的連接,如下

'redis' => [    'client' => 'predis',    'default' => [      'host' => env('REDIS_HOST', '127.0.0.1'),      'password' => env('REDIS_PASSWORD', null),      'port' => env('REDIS_PORT', 6379),      'database' => env('REDIS_DB', 0),    ],    'cache' => [      'host' => env('REDIS_HOST', '127.0.0.1'),      'password' => env('REDIS_PASSWORD', null),      'port' => env('REDIS_PORT', 6379),      'database' => env('REDIS_CACHE_DB', 1),    ],    'session' => [      'host' => env('REDIS_HOST', '127.0.0.1'),      'password' => env('REDIS_PASSWORD', null),      'port' => env('REDIS_PORT', 6379),      'database' => env('REDIS_SESSION_DB', 2),    ],  ],

接下來在 .env 中添加 SESSION_CONNECTION=session

測試

經過上面的操作,已經修改好了。總結下就是 default 使用的是 0 庫,cache 使用的是 1 庫,session 使用的是 2 庫。

使用如下代碼來測試下

/**   * 測試 Redis 的存儲   */  public function testRedis()  {    // Redis 門面    Redis::setex('facades', 30, 'i am facades');    // Cache    Cache::put('cache', 'i am cache', now()->addMinute(30));    // 因為 Cache 默認是 Redis,所有和上面語句相同    // Cache::store('redis')->put('cache', now(), now()->addMinute(30));  }

運行以上代碼之后,在服務器中使用 redis-cli 來看下存儲情況

laravel,Redis,庫

可以看到各個庫的存儲情況

  1. 使用 Redis 門面操作,默認為 config/database.php 中 Redis 的 default 連接,數據存入 0 庫;
  2. 使用 Cache 操作,因為 config/cache.php 中 Redis 的 connection 設置為 cache,理所當然存入的是 1 庫;
  3. Session 也根據 SESSION_CONNECTION=session 配置,正確的存入了 2 庫;

使用 Redis 門面的時候,也可以指定連接

$redis = Redis::connection('session');$redis->setex('facades_connection', 30, 'i am facades_connection');

laravel,Redis,庫

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 廉江市| 巴青县| 昌乐县| 天气| 龙口市| 巴彦淖尔市| 彭水| 海淀区| 蓝田县| 招远市| 上饶县| 绵阳市| 河源市| 城固县| 台湾省| 额敏县| 沙雅县| 崇左市| 梁山县| 扎赉特旗| 龙海市| 克山县| 板桥市| 淳化县| 太和县| 囊谦县| 饶河县| 肇东市| 民县| 白河县| 象州县| 郓城县| 高阳县| 尼玛县| 垦利县| 屯留县| 乐昌市| 东兴市| 芮城县| 盐边县| 三穗县|