欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ThinkPHP6使用redis缓存

程序员文章站 2022-06-24 17:43:57
php安装redis扩展redis命令tp6缓存配置1、安装redis扩展后运行2、修改配置目录config下面的cache.php文件return [ 'default' => 'file', 'stores' => [ // 文件缓存 'file' => [ // 驱动方式 'type' => 'file',...

php安装redis扩展

redis命令

tp6缓存配置

1、安装redis扩展后运行

ThinkPHP6使用redis缓存

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 dm_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缓存

 

cmd命令行查看所有key 

ThinkPHP6使用redis缓存 存到redis成功

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

ThinkPHP6使用redis缓存

10s后

ThinkPHP6使用redis缓存

本文地址:https://blog.csdn.net/qq_44718170/article/details/111831898