您现在的位置是: 网站首页> PHP> ThinkPHP ThinkPHP
ThinkPHP6.0 缓存使用方法详细说明
Smile 2020-09-24 16:14:20 PHP ThinkPHP 阅读:3702
简介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)