ThinkPHP6使用redis缓存

php安装redis扩展

redis命令

tp6缓存配置

1、安装redis扩展后运行

ThinkPHP6使用redis缓存_第1张图片

2、修改配置目录config下面的cache.php文件

return [
    'default'    =>    'file',
    'stores'    =>    [
        // 文件缓存
        'file'   =>  [
            // 驱动方式
            'type'   => 'file',
            // 设置不同的缓存保存目录
            'path'   => '../runtime/file/',
        ],  
        // redis缓存
        'redis'   =>  [
            // 驱动方式
            'type'   => 'redis',
            // 服务器地址
            'host'       => '127.0.0.1',
            //  端口号
            'port'      => '6379',
            //  密码
            'password'=> "",
            //  默认缓存时间
            'timeout' => 3600
        ],  
    ],];

3、上代码

很好理解  先获取redis的key,第一次查肯定是没有的,就从Mysql查询,然后设置key,再查询就读取key。

一句话:有缓存读取缓存,没有就查询数据(个人理解)

/**
* 查询商家信息
* @param $id 商家id
*/
public function getStoreInfo(Request $request)
{
    $validate = new CommonValidate([
        'id' => 'require|integer',
    ]);
    if (!$validate->check($request->param())) {
        return api_json(1, $validate->getError());
    }
    $store_id = $request->param('id');
    $redis = new Redis();
    // 获取redis缓存
    $store_info = $redis->get('getStoreInfo' . $store_id);
    if (!$store_info) {
        $store_info = StoreModel::where(['store_id' => $request->param('id')])->find()->toArray();
        // 设置redis缓存 第一个参数 key,这里设置的是方法名拼接上传过来的商家id,防止重复,第二个参数就是 值
        $redis->set('getStoreInfo' . $store_id, $store_info,10);   //设置10秒过期 不填默认0为永久缓存
        return api_json('0', 'mysql', $store_info);
    } else {
        return api_json('0', 'reids', $store_info);
    }

}

4、查看效果

第一次访问

ThinkPHP6使用redis缓存_第2张图片

cmd命令行查看所有key 

ThinkPHP6使用redis缓存_第3张图片 存到redis成功

10s内刷新页面 查询数据,读的redis缓存

ThinkPHP6使用redis缓存_第4张图片

10s后

ThinkPHP6使用redis缓存_第5张图片

你可能感兴趣的:(php,thinkphp,redis,缓存)