php框架

 首页 > php框架 > ThinkPHP > ThinkPHP 数据缓存 - Thinkphp

ThinkPHP 数据缓存 - Thinkphp

分享到:
【字体:
导读:
          ThinkPHP的数据缓存功能应该是一个非常大的特色,期间也经历了不少完善,主要由Cache类来完成,并且以工厂模式支持了很多的缓存方式,目前支持的有:File 文件方式,Db 数据库方式,Shmop 共享内...

ThinkPHP 数据缓存

ThinkPHP的数据缓存功能应该是一个非常大的特色,期间也经历了不少完善,主要由Cache类来完成,并且以工厂模式支持了很多的缓存方式,目前支持的有:

File 文件方式

Db 数据库方式

Shmop 共享内存方式

Eaccelerator Eaccelerator (Turck MMcache fork)

Memcache Memched

Apc APC

Apachenote Apache note

Sqlite SQLite

Xcache

对于用户来说,并不需要了解具体某种缓存方式实现的细节,而是统一通过公共的接口方法来实现缓存写入和读取,包括有效期设置,缓存的使用范围可以用在框架的各个层次,包括数据库查询缓存、数据对象缓存、应用自定义缓存等,使用缓存类的方式如下:

  1. Import("Think.Util.Cache"); 
  2. // 取得缓存实例 其中type参数表示上面列出的缓存类型 默认为File类型 
  3. $cache = Cache: :getInstance($type); 
  4. // 写入缓存 
  5. $cache->set($name,$value,$expire); 
  6. // 读取缓存 
  7. $cache->get($name); 
  8. // 删除缓存 
  9. $cache->rm($name); 
  10. // 清空缓存 
  11. $cache->clear($name); 

通常来说缓存会自动管理,过期的会自动清除,所以不需要手动来清除,在0.9.8版本以后,还增加了更加方便缓存操作的S方法,例如,上面的操作可以简化为:

  1. // 写入缓存数据 
  2. S($name,$value,$expire); 
  3. // 读取缓存数据 
  4. S($name); 
  5. // 删除缓存 
  6. S($name,NULL); 
  7. // 另外还可以指定其它的缓存方式操作 
  8. S($name,$value,$expire,$type

ThinkPHP支持自动数据对象缓存,该功能无需启用动态数据缓存就可以使用了,事实上,ThinkPHP的核心Action类的预定义操作方法中大量使用了数据对象自动缓存功能,第一次读取某个Vo对象会自动生成缓存,重复刷新页面或者其他用户读取该数据对象的时候无需再次访问数据库,而当某个用户对该数据对象进行了修改,系统会自动删除缓存数据对象,以便下次自动重新生成缓存,自动缓存仅仅适用于数据对象,对于数据列表对象无法完成自动缓存的更新功能.

框架还支持对缓存读写次数的统计功能.

分享到:
thinkphp配置连接的数据库 - Thinkphp
thinkphp配置连接的数据库 1.在thinkphp入口文件同目录下的config.inc.php中添加数据库配置信息   然后在项目目录的config.php文件中添加如下代码:   在后台文件中也可以添加如上代码,这样在数据库配置的连接信息改动后,只需要修改config.inc.php文件中的信息就可以达...
PHP 间断执行某代码段 - Thinkphp
PHP 间断执行某代码段 PHP如何设置每隔一段时间自动执行某段代码?例如定时生成静态文件之类的,这就需要设置休眠时间,即每隔一段时间程序就会调用某段代码. 代码如下: ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.  set_time_limit(0); // 执...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……