第15章:Drupal缓存(cache)3

使用缓存API

对于模块开发者来说,如果他想使用缓存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函数


同步内容