您现在的位置是: 网站首页> PHP> ThinkPHP ThinkPHP

ThinkPHP6.0 缓存使用方法详细说明

Smile 2020-09-24 PHP ThinkPHP 阅读:233

简介ThinkPHP采用think\Cache类(实际使用think\facade\Cache类即可)提供缓存功能支持,内置支持的缓存类型包括file、memcache、wincache、sqlite、redis,可在cache.php文件中配置

1、引入think\facade\Cache类

use think\facade\Cache;

2、设置缓存

//没有指定缓存有效时间,默认是永久
Cache::set('name', '时间尽头');
// 缓存在3600秒之后过期
Cache::set('name', '时间尽头', 3600);

如果设置成功返回true,否则返回false

3、设置缓存自增、自减

(1)自增

Cache::set('num', 1);
Cache::inc('num');// num自增(步进值为1)
Cache::inc('num',3);// num自增(步进值为3)

(2)自减

Cache::dec('num');// num自减(步进值为1)
Cache::dec('num',3);// num自减(步进值为3)

4、获取缓存

Cache::get('name');//如果name值不存在,则默认返回 false

//支持指定默认值
Cache::get('name',''); //表示如果name值不存在,则返回空字符串

5、追加一个缓存数据(缓存数据是一个数组)

Cache::set('nums', [1,2,3]);
Cache::push('nums', 4);
Cache::get('nums'); // [1,2,3,4]

6、删除缓存

Cache::delete('num');//删除成功时返回1

7、获取并删除缓存

Cache::pull('num');//如果name值不存在,则返回null

8、清空缓存

Cache::clear();

9、不存在则写入缓存数据后返回

Cache::remember('start_time', time());
//如果start_time缓存数据不存在,则会设置缓存数据为当前时间

//第二个参数可以使用闭包方法获取缓存数据,并支持依赖注入
Cache::remember('start_time', function(Request $request){
    return $request->time();
});

remember方法的第三个参数可以设置缓存的有效期

10、缓存标签(要对缓存数据分类时比较有用)

Cache::tag('tag')->set('name1','value1');
Cache::tag('tag')->set('name2','value2');

//获取
Cache::get('name1');
// 清除tag标签的缓存数据
Cache::tag('tag')->clear();

//并支持同时指定多个缓存标签操作
Cache::tag(['tag3', 'tag4'])->set('name3', 'value3');
Cache::tag(['tag3', 'tag4'])->set('name4', 'value4');

// 清除多个标签的缓存数据
Cache::tag(['tag3','tag4'])->clear();

//可以追加某个缓存到标签
Cache::tag('tag')->append('name5');

11、使用助手函数

cache('name', '时间尽头', 3600);// 设置缓存数据
dd(cache('name'));// 获取缓存数据

$cache = cache();// 返回缓存对象实例
dd(cache()->get('name'));// 也可以这样获取缓存数据

cache('name', NULL);// 删除缓存数据

12、切换缓存类型

注:没有指定缓存类型的话,默认读取的是default缓存配置,可以动态切换

// 使用文件缓存
Cache::set('name','时间尽头',3600);
Cache::get('name');

// 使用Redis缓存
Cache::store('redis')->set('name','时间尽头',3600);
Cache::store('redis')->get('name');

// 切换到文件缓存
Cache::store('default')->set('name','时间尽头',3600);
Cache::store('default')->get('name');

如果要返回当前缓存类型对象的句柄,可以使用

// 获取Redis对象 进行额外方法调用
Cache::store('redis')->handler();

很赞哦! (0)

文章评论

站点信息