博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TP缓存设计方案解析
阅读量:7200 次
发布时间:2019-06-29

本文共 694 字,大约阅读时间需要 2 分钟。

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相关配置

REDIS_HOST 主机
REDIS_PORT 端口

 

转载于:https://www.cnblogs.com/xiaodo0/p/4738541.html

你可能感兴趣的文章
vue中axios的使用与封装
查看>>
java list几种性能比较
查看>>
学习笔记之FluentAssertions
查看>>
JavaScript高级程序设计(第三版)学习笔记11、12、17章
查看>>
B00014 C++实现的AC自动机
查看>>
条件测试与比较
查看>>
已知/未知宽高的浮动元素水平居中对齐 和 图片水平垂直居中对齐
查看>>
解决 - java.lang.OutOfMemoryError: unable to create new native thread
查看>>
f5健康检查
查看>>
玩转计划任务命令:schtasks
查看>>
[Linux] Big-endian and Little-endian (大小端模式)
查看>>
非父子组件生命周期的关系
查看>>
web crawling(plus6) pic mining
查看>>
01Hadoop简介
查看>>
树莓派上搭建唤醒词检测引擎 Snowboy
查看>>
hdu 3635 Dragon Balls(并查集技巧)
查看>>
算法和策略之间的混沌关系
查看>>
让 OpenAL 也支持 S16 Planar(辅以 FFmpeg)
查看>>
单例初始化宏定义
查看>>
删除字符串中某字符
查看>>