Laravel 預設 Session 是放在 file 中,導致網站讀取 Session 的時候變得較慢,例如我的測試網站放在比較舊款的 Synology NAS 中,硬碟使用的傳統 5400rpm 的硬碟,在瀏覽 Laravel 的網站資料量大些相對地變得很慢,光開個首頁就要 3-5秒以上,所以試著將 Laravel 轉入 Redis,速度變得很快,只要一、兩秒就可以載入首頁。
安裝 Redis
- Synology NAS 請參考 Synology NAS – 安裝 Redis 及 PHP Redis extension
- XAMPP 請參考 XAMPP 安裝 Redis 及 PHP Redis extension
修改 config\database.php
'redis' => [
'client' => env('REDIS_CLIENT', 'phpredis'),
'options' => [
'cluster' => env('REDIS_CLUSTER', 'redis'),
'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
],
'default' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_DB', '0'),
],
'cache' => [
'url' => env('REDIS_URL'),
'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' => 2,
],
],
修改 .env
SESSION_DRIVER=redis
SESSION_CONNECTION=session
REDIS_CLIENT=predis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379