tp5.1 使用 mysql 主从复制 redis 缓存

原文链接: http://blog.fenlanli.com/articles/2019/09/08/1567945178620.html

tp5.1 使用 mysql 主从复制 redis 缓存_第1张图片

配置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缓存使用:

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

个人博客:http://blog.fenlanli.com

你可能感兴趣的:(Mysql,php)