Zend Framework 的缓存模块 Zend_Cache 使用

来源:互联网 发布:js延时函数sleep 编辑:程序博客网 时间:2024/06/05 18:59

缓存有几个重要的概念:

  • 数据本身
  • 数据的标识
  • 缓存生命期
  • 缓存操作接口

缓存的获取操作一般十分快速, 而数据库操作一般是昂贵的, 所以通过缓存可以提高系统的整体性能.

Zend_Cache 的使用比较简单, 它可以把数据保存到 File, Memcache, SQLite 等介质(称为后端, Backend)中. 还有前端(Frontend), 主要用来对要缓存的数据进行转换, 如序列化.

==data==>Frontend==>mediate data==>Backend==>File, Memcache, etc

使用例子:

<?php// "load" Zend_Cache 工厂require 'Zend/Cache.php'; // 选择一个前端(例如'Core', 'Output', 'Page'...)$frontendName = 'Core';// 选择一个后端(例如'File'或者'Sqlite'...)$backendName = 'File';// 为选择的前端设置一个选项数组// 前端把要缓存的数据序列化, 这样就可以缓存数组, 对象的实例等数据.$frontendOptions = array('automatic_serialization'=>true);// 为选择的后端设置一个选项数组// 缓存文件被保存在 ./cache 目录下.$backendOptions = array('cache_dir' => './cache');// 创建实例(当然,最后两个参数是可选的)$cache = Zend_Cache::factory($frontendName, $backendName, $frontendOptions, $backendOptions);// 数据的标识$id = 'mydata';$data = $cache->load($id);if(!$data){    // 缓存中没有需要的数据(缓存未命中), 所以需要从数据库或者其它地方把数据放入缓存.    // 这里的代码是耗时和耗资源的.    $data = query_database();    $tags = array();    // 缓存的生命期为 10 秒.    $lifetime = 10;    $cache->save($data, $id, $tags, $lifetime);}// 对数据进行处理.manipulate(data);?>
原创粉丝点击