tp5.1 使用 mysql 主從複製 redis 緩存

配置Mysql主從複製

使用docker配置, 可以參考我這篇文章, docker配置mysql主從複製

安裝redis及php的redis擴展

推薦使用docker安裝redis:

  • 拉取redis鏡像: docker pull redis

  • 創建redis數據保存目錄: mkdir -p ~/docker/redis/data && cd ~/docker/redis

  • 運行容器,並將本地的6379端口映射到容器內部的6379端口。docker run -p 6379:6379 -v $PWD/data:/data -d redis redis-server --appendonly yes

使用pecl安裝php的redis擴展
sudo pecl install redis

修改tp的配置文件

database.php配置文件需要修改的地方:

    // 數據庫部署方式:0 集中式(單一服務器),1 分佈式(主從服務器)
    'deploy'          => 1,
    // 數據庫類型
    'type'            => 'mysql',
    // 服務器地址
    'hostname'        => ['127.0.0.1', '127.0.0.1'],  // 該寫法是tp5.1.25+以上支持的寫法。
    // 數據庫名
    'database'        => 'DregAdmin',
    // 用戶名
    'username'        => ['root', 'root'],
    // 密碼
    'password'        => ['123456', '123456'],
    // 端口
    'hostport'        => [3307, 3308],

    // 數據庫讀寫是否分離 主從式有效
    'rw_separate'     => true,

    // 讀寫分離後 主服務器數量
    'master_num'      => 1,

cache.php配置文件需要修改的地方:

默認緩存配置爲文件類型, 使用時不指定redis,則使用文件緩存。

    // 驅動方式
    'type'   => 'complex',
    'default' => [
        // 驅動方式
        'type' => 'file',
        // 緩存保存目錄
        'path'   => '../runtime/default',
        // 緩存前綴
        'prefix' => '',
        // 緩存有效期 0表示永久緩存
        'expire' => 0,
    ],
    'redis' => [
        'type' => 'redis',
        'host' => '127.0.0.1'
    ]

使用

  • mysql讀寫分離開啓後是自動調用的,除非在master插入數據後,防止從庫還未同步到數據,導致查詢失效的時候,可以手動指定查詢master數據庫。

  • redis緩存使用:

<?php
namespace app\index\controller;

use think\Facade\Cache;

class Index
{
    public function index()
    {
        Cache::store('redis')->set('user', '林同學');
        return '設置Redis緩存';
    }

    public function hello()
    {
        $user = Cache::store('redis')->get('user');
        return 'Hello ' . $user;
    }
    
    public function test()
    {
        Cache::set('key', 'value');
        return '設置默認緩存';
    }
    
    public function get()
    {
        $val = Cache::get('key');
        return $val;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章