ThinkPHP数据缓存

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




File 文件方式
 Db 数据库方式
 Shmop 共享内存方式
 Eaccelerator Eaccelerator (Turck MMcache fork)
 Memcache Memched
 Apc APC
 Apachenote Apache note
 Sqlite SQLite
 Xcache




 对于用户来说,并不需要了解具体某种缓存方式实现的细节,而是统一通过公共的接口方法来实现缓存写入和读取,包括有效期设置。缓存的使用范围可以用在框架的各个层次,包括数据库查询缓存、数据对象缓存、应用自定义缓存等,使用缓存类的方式如下:
 
[php]Import("Think.Util.Cache");
 // 取得缓存实例 其中type参数表示上面列出的缓存类型 默认为File类型
 $cache  = Cache: :getInstance($type);
 // 写入缓存
 $cache->set($name,$value,$expire);
 // 读取缓存
 $cache->get($name);
 // 删除缓存
 $cache->rm($name);
 // 清空缓存
 $cache->clear($name);[/php]
 
通常来说缓存会自动管理,过期的会自动清除,所以不需要手动来清除。
 在0.9.8版本以后,还增加了更加方便缓存操作的S方法,例如,上面的操作可以简化为
 
[php]// 写入缓存数据
 S($name,$value,$expire);
 // 读取缓存数据
 S($name);
 // 删除缓存
 S($name,NULL);
 // 另外还可以指定其它的缓存方式操作
 S($name,$value,$expire,$type)[/php]
 
ThinkPHP支持自动数据对象缓存,该功能无需启用动态数据缓存就可以使用了,事实上,ThinkPHP的核心Action类的预定义操作方法中大量使用了数据对象自动缓存功能。第一次读取某个Vo对象会自动生成缓存,重复刷新页面或者其他用户读取该数据对象的时候无需再次访问数据库,而当某个用户对该数据对象进行了修改,系统会自动删除缓存数据对象,以便下次自动重新生成缓存。自动缓存仅仅适用于数据对象,对于数据列表对象无法完成自动缓存的更新功能。
 框架还支持对缓存读写次数的统计功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值