首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

Laravel 整合 MySQL 與 Redis 實戰:從環境建置到雙資料庫讀寫分離配置

     編輯:PHP 相關知識

Laravel 整合 MySQL 與 Redis 實戰:從環境建置到雙資料庫讀寫分離配置

在 CentOS + Nginx + PHP 5.4+ 環境下,完整建置 Laravel 5.0 專案並整合 MySQL(主儲存)與 Redis(快取層),示範 Controller → Model → Repository 模式實現快取優先讀取策略。

環境建置清單

  • OS:CentOS 6.5 64bit
  • Web:Nginx(反向代理)
  • DB:MySQL 5.6(阿里雲 RDS)
  • PHP:5.4.4+,需 php-mysql php-mcrypt php-mbstring php-tokenizer php-openssl
  • Composer 全域安裝
  • Laravel 安裝器建立專案
  • Nginx 配置 try_files $uri $uri/ /index.php?$query_string;
  • storage/、vendor/ 權限 chmod -R 766

MySQL 基礎 MVC 實作

  1. 建立 demo 資料庫與 tbl_item 表。
  2. config/database.php 設定 MySQL 連線。
  3. Model App\Item 繼承 Eloquent,fetchAll() 回傳 JSON。
  4. Controller ItemController@showItem 呼叫 Model 並 Log::info 記錄來源。
  5. Route Route::get('/item/{id}', 'ItemController@showItem')。

Redis 快取層整合

  1. 安裝 Redis 3.0.1:wget && make && src/redis-server。
  2. Composer 安裝 predis/predis:~1.0(無需 PHP 擴展)。
  3. config/database.php 新增 redis 陣列配置 host=127.0.0.1, port=6379。
  4. Controller 修改為快取優先邏輯:
$redis = Redis::connection('default');
$cache = $redis->get('userList');
if ($cache) {
    $users = $cache; Log::info('from redis');
} else {
    $users = $this->model->fetchAll();
    $redis->set('userList', $users);
    Log::info('from mysql');
}

關鍵避坑指南

  • composer update 記憶體不足 → 重啟伺服器或調整 memory_limit。
  • Redis 連線失敗 → 檢查防火牆、bind 127.0.0.1、密碼認證。
  • 快取一致性:資料異動時必須 del('userList') 或設定 TTL 自動過期。

此架構讀請求優先命中 Redis,寫請求更新 MySQL 並清除快取,經典的 Cache-Aside 模式,顯著降低資料庫壓力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved