使用缓存API
译者:老葛 ESKALATE科技公司
对于模块开发者来说,如果他想使用缓存API的话,那么就需要掌握两个函数:cache_set()和cache_get()。
使用cache_set()缓存数据
cache_set()用来将数据写入到缓存中。函数签名如下:
cache_set($cid, $table = 'cache', $data, $expire = CACHE_PERMANENT, $headers = NULL)
函数参数有:
$cid:唯一的缓存ID,为一字符串,作为缓存数据的键。
$table:用来存储数据的表的名称。你可以创建你自己的表,或者使用cache,cache_filter,cache_menu,cache_page。默认使用cache表。
$data:存储在缓存中的数据。记住复杂PHP数据类型必须先序列化。
$expire:缓存数据的有效期时间长度。可能值有CACHE_PERMANENT,CACHE_TEMPORARY,或者一个Unix时间戳。
$headers:对于缓存页面,传给浏览器的HTTP头部字符串。
一个cache_set()的通用迭代模式可在filter.module找到。
// Store in cache with a minimum expiration time of 1 day.
if ($cache) {
cache_set($cid, 'cache_filter', $text, time() + (60 * 60 * 24));
}
使用cache_get()取回缓存过的数据
cache_get()用来取回缓存过的数据。函数签名如下:
cache_get($cid, $table = 'cache')
函数参数有:
$cid:用于取回数据的缓存ID。
$table:用来取回缓存数据的表的名称。你可以创建你自己的表,或者使用cache,cache_filter,cache_menu,cache_page。默认使用cache表。
一个cache_set()的通用迭代模式可在filter.module找到。
// Check for a cached version of this piece of text.
if ($cached = cache_get($cid, 'cache_filter')) {
return $cached->data;
}
总结
在本章,你学到:
Drupal提供的各种缓存类型:页面、菜单、变量、过滤器缓存
页面缓存系统如何工作
普通模式,激进模式和fastpath模式之间的不同之处
缓存API函数