企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 概述 ThinkPHP5.0采用Think\Cache类统一对缓存功能提供支持。 ## 设置 缓存支持采用驱动方式,所以缓存在使用之前,需要进行连接操作,也就是缓存初始化操作。 ~~~ $options = [ 'type'=>'File', // 缓存类型为File 'expire'=>0, // 缓存有效期为永久有效 'prefix'=>'think' 'path'=> APP_PATH.'Runtime/cache/', // 指定缓存目录 ]; \think\Cache::connect($options); ~~~ 或者通过定义配置参数的方式: ~~~ 'cache' => [ 'type' => 'File', 'path' => CACHE_PATH, 'prefix' => '', 'expire' => 0, ], ~~~ 支持的缓存类型包括file、apachenote、apc、eaccelerator、memcache、secache、wincache、shmop、sqlite、db、redis和xcache 缓存参数根据不同的缓存方式会有所区别,通用的缓存参数如下: ||| |---|---| |type |缓存类型| |expire |缓存有效期 (默认为0 表示永久缓存)| |prefix |缓存前缀(默认为空)| |length |缓存队列长度(默认为0)| ## 使用 缓存初始化之后,就可以进行相关缓存操作了。 ### 设置缓存 ~~~ \think\Cache::set('name',$value,3600); // 缓存标识为name的数据,有效期3600秒 ~~~ ### 获取缓存 获取缓存数据可以使用: ~~~ dump(\think\Cache::get('name')); // 获取缓存数据 ~~~ ### 删除缓存 ~~~ \think\Cache::rm('name'); // 删除name标识的缓存数据 ~~~ ### 清空缓存 ~~~ \think\Cache::clear(); // 清空缓存数据 ~~~ ## 缓存队列 所有缓存方式均支持缓存队列功能,也就是说,我们可以指定缓存队列的长度,超出长度后,位于队列开头的缓存数据将会被移除。 我们只需要设置length属性,例如: ~~~ $options = [ 'type'=>'File', // 缓存类型为File 'expire'=>0, // 缓存有效期为永久有效 'length'=>3, // 缓存队列长度 'temp'=> APP_PATH.'Runtime/Cache/', // 指定缓存目录 ]; \think\Cache::connect($options); \think\Cache::set('name1','val1'); \think\Cache::set('name2','val2'); \think\Cache::set('name3','val3'); \think\Cache::set('name4','val4'); // name1标识的缓存数据将被移除 dump(\think\Cache::get('name1')); // 输出结果为 false ~~~ ## 快捷方法 系统对缓存操作提供了快捷函数S,用法如下: ~~~ $options = [ 'type'=>'File', // 缓存类型为File 'expire'=>0, // 缓存有效期为永久有效 'length'=>3, // 缓存队列长度 'path'=> APP_PATH.'Runtime/cache/', // 指定缓存目录 ]; S($options); // 缓存初始化 S('name',$value,3600); // 设置缓存数据 var_dump(S('name')); // 获取缓存数据 S('name',NULL); // 删除缓存数据 ~~~ 还可以在设置缓存的同时进行参数设置: ~~~ S('test',$value,['expire'=>60,'path'=>APP_PATH.'Temp/','type'=>'xcache']); ~~~