TP缓存设计方案解析
2015-08-18 10:04
519 查看
TP的缓存主要依赖Cache类,Cache类其实是一个代理类,Cache类通过getInstance静态方法来获取缓存实例,而getInstance方式实际是调用Cache类的connect方法,该方法类似于工厂返回对应缓存类型的驱动实例,这里以Redis为例,那么这里返回的就是CacheRedis驱动,该驱动在构造函数中会实例Redis扩展类,并赋值给handle属性来做本地代理,所以我们可以像使用Redis类一样的使用CahceRedis,并重写get和set方法,提供对外的统一接口.
查询缓存
查询缓存使用Model的cache方法来实现缓存处理,cache方法接受3个参数,分别为:缓存的键,缓存时间,缓存类型,并返回当前Model的实例$this,在这里Model只是将缓存信息存入options属性,之后DB类在select方法中会检测是否使用缓存,并调用S方法来做缓存的存取,S方法实际上则是使用Cache类来做存取
缓存的键:可以为字符串或者true,如果为true,那么TP会根据生成的SQL语句的MD5值作为key,缓存前缀读取配置DATA_CACHE_PREFIX
缓存时间:以秒为单位,如果不设置则读取配置文件中DATA_CACHE_TIME的值
缓存类型:默认为文件缓存,可选类型
,这是TP默认支持的缓存驱动,也可自己扩展,如果不设置该值则读取配置DATA_CACHE_TYPE
Redis相关配置
查询缓存
查询缓存使用Model的cache方法来实现缓存处理,cache方法接受3个参数,分别为:缓存的键,缓存时间,缓存类型,并返回当前Model的实例$this,在这里Model只是将缓存信息存入options属性,之后DB类在select方法中会检测是否使用缓存,并调用S方法来做缓存的存取,S方法实际上则是使用Cache类来做存取
缓存的键:可以为字符串或者true,如果为true,那么TP会根据生成的SQL语句的MD5值作为key,缓存前缀读取配置DATA_CACHE_PREFIX
缓存时间:以秒为单位,如果不设置则读取配置文件中DATA_CACHE_TIME的值
缓存类型:默认为文件缓存,可选类型
,这是TP默认支持的缓存驱动,也可自己扩展,如果不设置该值则读取配置DATA_CACHE_TYPE
Redis相关配置
REDIS_HOST 主机
REDIS_PORT 端口
相关文章推荐
- 详解PHP中的mb_detect_encoding函数使用方法
- TProfiler
- 深入讲解PHP Session及如何保持其不过期的方法
- php学习-15超全局变量
- php学习-14数组排序
- scikit-learn:matplotlib.pyplot常用画图功能总结(1)
- Zabbix安装界面显示PHP time zone 为“红色”的解决办法
- 深入讲解PHP Session及如何保持其不过期的方法
- 详解PHP中的mb_detect_encoding函数使用方法
- PHP的命令行命令使用指南
- 深入探究PHP的多进程编程方法
- 以实例全面讲解PHP中多进程编程的相关函数的使用
- php定时执行任务的几个方法
- php使用curl post 乱码 淘宝手机 curl 注意事项 cookie无法传递
- 【phpMyAdmin】更改配置文件连接到其他server
- PHP:文件的上传下载
- PHP获取Cookie模拟登录CURL
- php笔记
- cakephp 如何在一个模型里调用另一个模型
- php:图像处理---立体饼状图