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的值

缓存类型:默认为文件缓存,可选类型aaarticlea/png;base64,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" alt="" />,这是TP默认支持的缓存驱动,也可自己扩展,如果不设置该值则读取配置DATA_CACHE_TYPE

Redis相关配置

REDIS_HOST 主机
REDIS_PORT 端口

TP缓存设计方案解析的更多相关文章

  1. C#系统缓存全解析(转载)

    C#系统缓存全解析 对各种缓存的应用场景和方法做了很详尽的解读,这里推荐一下 转载地址:http://blog.csdn.net/wyxhd2008/article/details/8076105

  2. (转)ASP.NET缓存全解析6:数据库缓存依赖

    ASP.NET缓存全解析文章索引 ASP.NET缓存全解析1:缓存的概述 ASP.NET缓存全解析2:页面输出缓存 ASP.NET缓存全解析3:页面局部缓存 ASP.NET缓存全解析4:应用程序数据缓 ...

  3. C# 嵌入dll 动软代码生成器基础使用 系统缓存全解析 .NET开发中的事务处理大比拼 C#之数据类型学习 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持 基于EF Core的Code First模式的DotNetCore快速开发框架 【懒人有道】在asp.net core中实现程序集注入

    C# 嵌入dll   在很多时候我们在生成C#exe文件时,如果在工程里调用了dll文件时,那么如果不加以处理的话在生成的exe文件运行时需要连同这个dll一起转移,相比于一个单独干净的exe,这种形 ...

  4. Spring 缓存注解解析过程

    Spring 缓存注解解析过程 通过 SpringCacheAnnotationParser 的 parseCacheAnnotations 方法解析指定方法或类上的缓存注解, @Cacheable ...

  5. Tp缓存

    系统默认的缓存方式是采用File方式缓存,我们可以在项目配置文件里面定义其他的缓存方式,例如,修改默认的缓存方式为Xcache(当然,你的环境需要支持Xcache) 对于File方式缓存下的缓存目录下 ...

  6. Sql Server tempdb原理-缓存机制解析实践

    Tempdb就像Sqlserver的临时仓库,各式各样的对象,数据在里面进行频繁计算,操作.大量的操作使得tempdb可能面临很大压力,tempdb中缓存的设计就是为了缓解这些压力.这次就为大家介绍下 ...

  7. ASP.NET缓存全解析7:第三方分布式缓存解决方案 Memcached和Cacheman 转自网络原文作者李天平

    Memcached — 分布式缓存系统 1.Memcached是什么? Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.Memcached通过在内 ...

  8. ASP.NET缓存全解析6:数据库缓存依赖 转自网络原文作者李天平

    更多的时候,我们的服务器性能损耗还是在查询数据库的时候,所以对数据库的缓存还是显得特别重要,上面几种方式都可以实现部分数据缓存功能.但问题是我们的数据有时候是在变化的,这样用户可能在缓存期间查询的数据 ...

  9. ASP.NET缓存全解析5:文件缓存依赖 转自网络原文作者李天平

    这种策略让缓存依赖于一个指定的文件,通过改变文件的更新日期来清除缓存. ///<summary> /// 获取当前应用程序指定CacheKey的Cache对象值 ///</summa ...

随机推荐

  1. bzoj 3226 [Sdoi2008]校门外的区间(线段树)

    3226: [Sdoi2008]校门外的区间 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 615  Solved: 227[Submit][Stat ...

  2. CSS样式学习笔记『W3School』

    1.选择器+声明声明:属性+值eg:h1{color:red;font-size:14px;}颜色:p{color:#ff0000;}p{color:#f00;}p{color:rgb(255,0,0 ...

  3. Bzoj1818: [Cqoi2010]内部白点 && Tyvj P2637 内部白点 扫描线,树状数组,离散化

    1818: [Cqoi2010]内部白点 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 704  Solved: 344[Submit][Status] ...

  4. InetAddress Example program in Java

    The InetAddress class has no visible constructors. To create an InetAddress object, you have to use ...

  5. ios 游戏《魂斗罗》 AL文件素材破解

    1.破解原理非常简单就是找png的8字节的前缀(baidu png 文件编码格式). 2.破解就图就可以看见了 3.这样一个个个的改是不是非常麻烦,所有我专门写了个py脚本在干这事!一步搞定! 源码如 ...

  6. CentOS 7下安装xampp和testlink

    记录一下最近安装testlink的经历,供大伙儿参考,有问题可以留言讨论,这里就不截图了 先说下安装版本: CentOS-7.0-1406-x86_64-DVDxampp-linux-1.8.3-5- ...

  7. 利用ServletFileUpload组件上传文件

    自己的运用: public void UploadNoteFile(HttpServletRequest request,HttpServletResponse response){  String ...

  8. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  9. JAVA格式化时间日期

    JAVA格式化时间日期 import java.util.Date; import java.text.DateFormat; /** * 格式化时间类 * DateFormat.FULL = 0 * ...

  10. Core Motion传感器原始数据

    1.访问原始的Motion数据 #import <UIKit/UIKit.h> #import <CoreMotion/CoreMotion.h> @interface Vie ...