Drupal系统中Cache缓存实践经验
发布时间:2019-12-16 11:16:04作者:admin点击:
drupal教程:Cache在drupal的中应用
drupal本身会在多个层面执行php代码,这就造成了它需要大量的时间来输出内容。Cache(缓存)是最大化提高drupal性能的关键性技术。在决定采取何种缓存机制之前,我们必须知道该站是何种类型以及什么样的用户回来访问该站。并不是所有的站点都有相同的缓存机制。(解释:就本站而言,采用的缓存技术主要有APC,Boost)
缓存技术需要根据不同数据类型以及对用户的影响来区分。Drupal中的缓存可以根据以下两大类用户来区分:
匿名用户
登陆用户
传送给匿名用户的html页面是相同的但传送给登陆用户的html却不完全相同,比如说“welcome ‘user name’”。所以我们可以通过给匿名用户缓存的页面可以获得非常高的网站速度。现在我们一起来看一下drupal中都有哪些缓存技术:
Drupal 内置缓存
drupal内置的缓存机制可以让我们轻松扩展drupal站点。存储在cache表中的数据可以被快速读取。drupal的内置缓存还可以跟后端的缓存系统集成从而替代掉默认的缓存数据表。drupal缓存的设置在admin/config/development/performance页面,他包含以下选项:
Cache pages for anonymous users:启用对匿名用户的页面缓存。
Cache blocks: 启用drupal区块缓存(区块缓存会被页面缓存忽略掉)。
Minimum cache lifetime: 最小缓存生命周期。
Expiration of cached pages: 最大缓存生命周期。
使用drupal cache api 自定义的drupal缓存
drupal核心提供了缓存api可以帮助你将缓存存储到cache表中去。大量数据可以被存储到特定的cache表中,比如,views模块使用cache_views以及cache_views_data来存储views的缓存。 以下是几个主要的drupal 缓存 api:
cache_set($cid, $data, $bin = 'cache', $expire = CACHE_PERMANENT)
cache_get($cid, $bin = 'cache')
cache_clear_all($cid = NULL, $bin = NULL, $wildcard = FALSE)
Drupal views cache:
drupal的views模块使用cache_views以及cache_views_data两张表来存储views中产生的缓存。默认情况下cache是关闭的,但你可以在每个独立的views display中将它开启。它能够允许我们为每个views display来缓存查询结果和页面输出。如果你生成了区块,你可以将该block输出到drupal内建的block 缓存中去。
Memcache
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。他帮助你降低数据库负载且速度非常快。他通常被用来加速那些专为登录用户开发的网站。他需要一个守护进程(memcached)并且有一个php拓展来使用该服务。但他不能支持共享服务器。 Drupal的memcache module集成drupal以及memcache。你需要设置memcached为drupal的后端缓存系统以便集成该服务到drupal的cache系统。修改一下settings文件即可: