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. 编程之美 两个叶子的节点之间 最大距离 变种 leecode

    提交地址: https://oj.leetcode.com/problems/binary-tree-maximum-path-sum/ 说一下思路http://www.cnblogs.com/mil ...

  2. Project Euler 9

    题意:三个正整数a + b + c = 1000,a*a + b*b = c*c.求a*b*c. 解法:可以暴力枚举,但是也有数学方法. 首先,a,b,c中肯定有至少一个为偶数,否则和不可能为以上两个 ...

  3. First Adventures in Google Closure -摘自网络

    Contents Introduction Background Hello Closure World Dependency Management Making an AJAX call with ...

  4. 容联云通讯_提供网络通话、视频通话、视频会议、云呼叫中心、IM等融合通讯能力开放平台。

    容联云通讯_提供网络通话.视频通话.视频会议.云呼叫中心.IM等融合通讯能力开放平台. undefined

  5. phpDesigner 7.2.5 注册码 更改 语法高亮 主题

    注册码: 用户名:www.xiazaiba.com 序列号:43AB0D432A29EE238CCE0F884D84D8A18498498E98298A98568AD05A0B40 验证码:7S2FF ...

  6. C语言snprintf函数

    int snprintf(char *restrict buf, size_t n, const char * restrict  format, ...); 函数说明:最多从源串中拷贝n-1个字符到 ...

  7. The server does not support version 3.1 of the JEE Web module specification.

    使用MyEclipse2015打开MyEclipse2014编辑的项目,在服务器Tomcat 7部署时,提示"The server does not support version 3.1 ...

  8. Oracle的SCN与检查点机制

    Oracle的SCN与检查点机制 SCN在Oracle的文档上以多种形式出现,一种是System Change Number,另一种是System Commit Number,在大多数情况下,Syst ...

  9. String和StringBuilder作为参数的区别

    先见下面实例: public class TestDemo { @Test public void test(){ //String str = "hello"; String s ...

  10. jquerymobile知识点:动态ListView

    这里要讲的是jqueryMobile 中的ListView 动态的列表 <ul data-role="listview" data-inset="true" ...