缓存的分类:
动态缓存-- 实现的底层机制(File, Db, Memchace, Redis ) 用一个接口类隐藏实现细节 (Cache, Cache.class.php, 目录在 ThinkPHP/Library/Think)。
数据库SQL缓存
数据动态缓存
静态缓存
页面静态化 -- 涉及到缓存的静态规则,就是在一定情况下,怎么生成静态缓存文件的名字,以及缓存的时间。 判断缓存是否过期的时候,用缓存文件的生成时间来计算。
有两个驱动, 一个是文件,另外是Sae。
缓存要考虑的一般问题:
1) 写入的时候,判断缓存有无打开。若打开,则缓存内容。
2) 读取的时候,要判断缓存是不是还有效,若有效,把内容读出来。
动态缓存之文件缓存:
每个变量存在自己的缓存文件中,支持CRC验证, 支持MD5转换
动态缓存之Memcache
动态缓存之Redis
动态缓存之SQL查询缓存
$Model->cache(true,60,‘xcache‘)->select(); 只要调用cache方法,就会设置$options[‘cache‘], 后续操作就会试着用S()取值。
这里的缓存也是利用Think\Cache::getInstance 来实现的。
select之前先查询一下有没有缓存值,如果有的话,直接返回就可以了
在select之后,看看有没有需要缓存,如果需要,就把值缓存一下。
原文:http://www.cnblogs.com/restart/p/4385511.html