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. java NIO 资料总结

    1.http://developer.51cto.com/art/201204/328340.htm 2.http://ifeve.com/file-channel/并发编程网系列 3 http:// ...

  2. jQuery 参考手册 - 事件

    事件方法会触发匹配元素的事件,或将函数绑定到所有匹配元素的某个事件. bind()向匹配元素附加一个或更多事件处理器 $(selector).bind(event,function) $(select ...

  3. debmirror镜像站

    如何建立一个Debian镜像网站呢?在Debian的官方网站已经有专门的介绍: http://www.debian.org/mirror/ftpmirror 这是基于rsync软件的方法,网页也提供了 ...

  4. 广州Uber优步司机奖励政策(2月1日~2月7日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  5. How do I use a host name to look up an IP address?

    The InetAddress class can be used to perform Domain Name Server (DNS) lookups. For example, you can ...

  6. 解决Ubuntu Server 12.04换了网卡MAC地址后 网络不可用的问题.

    重装了系统,新建了一个ubuntu虚拟机,加载原来的镜像,结果启动后网络变得不正常了,提示信息 Waiting for network configuration...Waiting up to 60 ...

  7. sql语句书写升降序

    1, desc:降序,明天今天昨天,zyx...cba,.....321 sql语句:select * from SC_BackDiggingInfo where WriteDate<='201 ...

  8. TimeSpan XML序列化

    /// <summary> /// 刷新时间 默认为1秒 /// </summary> /// <value>The refresh time.</value ...

  9. CONTROLS: <> TYPE TABLEVIEW USING SCREEN<>.在 ABAP/4 中声明表格 控制

    在 ABAP/4 中声明表格 控制 在屏幕中使 用表格控制 时,必须在 ABAP/4 程序中同时 声明表格控 制结构和表 格控制字段 . 例如: TABLES:   SFLIGHT. CONTROLS ...

  10. swift Array 数组

    // //  main.Swift //  swift数组 // //  Created by zhangbiao on 14-6-15. //  Copyright (c) 2014年 理想. Al ...