企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] * * * * * ## 1 文件 tp5的缓存驱动目录thinkphp\library\think\cache\driver\ 通过各种缓存机制实现**键值对数据**的缓存 包含以下**12种** * * * * * 1 Apc.php Apc缓存 2 Db.php 数据库表缓存 3 File.php 带队列文件缓存 4 Lite.php 简单文件缓存 5 Memcache.php Memcache缓存 6 Memcached.php Memecached缓存 7 Redis.php Redis.php缓存 8 Sae.php Sae平台缓存 9 Secache.php Secache缓存 10 Sqlite.php Sqlite缓存 11 Wincache.php Wincache缓存 12 Xcache Xcache缓存 * * * * * 数据库类型 > Db [Redis](http://www.redis.cn/) [Sqlite](http://sqlite.in/) 进程类型 > [Memcache](http://php.net/manual/zh/book.memcache.php) [Memcached](http://php.net/manual/zh/book.memcached.php) 文件类型 > File Lite php实现 > [Secache](https://github.com/shopex/secache) 扩展实现 > [Apc](http://php.net/apc) [Xcache](http://xcache.lighttpd.net/wiki/XcacheApi) 平台实现 > [Sae](http://www.sinacloud.com/doc/sae/php/memcache.html) [Wincache](http://php.net/manual/en/book.wincache.php) ## 2 缓存驱动 > 1 缓存配置 全局配置文件convention.php ~~~ 'cache' => [ 'type' => 'File', 'path' => CACHE_PATH, 'prefix' => '', 'expire' => 0, ], ~~~ > 2 缓存初始化 thinkphp\library\think\Cache.php的connect() ~~~ if (!isset(self::$instance[$md5])) { $type = !empty($options['type']) ? $options['type'] : 'File'; $class = (!empty($options['namespace']) ? $options['namespace'] : '\\think\\cache\\driver\\') . ucwords($type); unset($options['type']); self::$instance[$md5] = new $class($options); APP_DEBUG && Log::record('[ CACHE ] INIT ' . $type . ':' . var_export($options, true), 'info'); } ~~~ 分析可知根据缓存配置的type值,选择对应的缓存驱动进行初始 ## 3 缓存驱动接口 1 `public function __construct($options = []){}` 缓存初始化接口。 > $options:缓存配置参数 2 `public function get($name){}` 读取缓存接口 > $name:缓存键名 3 `public function set($name, $value, $expire = null){}` 写入缓存接口 > $name:缓存键名 > $value:缓存键值 > $expire:缓存键名前缀 4 `public function rm($name){}` 删除缓存接口 > $name:缓存键名 5 `public function clear(){}` 清空缓存接口 ## 4 总结 1 缓存配置 > convention.php 2 缓存初始化 > Cache::connect($options) 3 缓存接口 > 5个public方法 > __construct() get() set() rm() clear()