配置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;
}
}