高速缓存到期参数

IBM® Web Content Manager 标记和 URL 中的“到期”参数用于指定数据在到期之前要在高速缓存中保留的时间。当数据在高速缓存中到期时,下次请求该数据时将从原始服务器检索它。expires 参数不是必需参数。

仅当服务器的缺省 Web 内容高速缓存设置为无或高级高速缓存时,才能使用定制到期参数。如果将基本高速缓存用作缺省 Web 内容高速缓存,那么无法使用定制到期参数。即使在启用了基本高速缓存的情况下无法使用定制到期参数,您仍可以(在使用高级高速缓存时)使用定制到期参数来使基本高速缓存中的数据到期。

expires 参数的值可以表示相对时间段或绝对日期和时间:
基本高速缓存
  • EXPIRES="ABS {date and time}"
  • EXPIRES="REL {integer}{units}"
高级高速缓存
  • CONTENTCACHEEXPIRES="ABS {date and time}"
  • CONTENTCACHEEXPIRES="REL {integer}{units}"
数据高速缓存
  • CONNECTORCACHEEXPIRES="ABS {date and time}"
  • CONNECTORCACHEEXPIRES="REL {integer}{units}"
示例:
<CONNECT MOD=Web SRV=HTML ACTION=http://www.ibm.com CACHE=SITE 
EXPIRES="REL 9000s">
http://host:port/wps/wcm/connect/library/sitearea/content?cache=site&expires="REL 9000s"

定制到期策略

  • 当设置定制到期参数以通过使用 connect 标记或 URL 请求检索外部数据时,必须使用 CONNECTORCACHEEXPIRY=
  • 如果缺省高速缓存是基本高速缓存,或者,如果在 connect 标记或 URL 请求中指定了 CACHE=,那么必须使用 EXPIRES=
  • 如果缺省高速缓存是高级高速缓存,或者,如果在 connect 标记或 URL 请求中指定了 CONTENTCACHE=,那么必须使用 CONTENTCACHEEXPIRES=
  • 如果缺省高速缓存是无,并且在 connect 标记或 URL 请求中仅指定了 CACHE=CONTENTCACHE=,那么将使用 WCM WCMConfigService 服务中的 connect.connector.httpconnector.defaultcacheexpires 属性使数据到期。

指定绝对时间

绝对日期指定文档到期的日期和时间。

要表示时间,请使用以下格式:

  • ABS {日期和时间}

例如:

  • ABS Mon, 29 May 2000 03:04:18 GMT

如果恰好在此时刻之后请求此文档,将导致此文档从高速缓存中清除,而获得一份新的副本。

在指定绝对到期日期时,此日期必须以 ABS 作为前缀,且日期必须是以下某种格式:

  • Mon, 06 Nov 2000 09:00:00 GMT
  • Monday, 06-Nov-00 09:00:00 GMT
  • Mon Nov 6 09:00:00 2000.
  • 6 Nov 2000 9:00 AM.

前三个日期格式使用标准 HTTP 规范,而最后一个是为了方便起见而使用的简单的短日期格式。

在使用绝对时间和日期来使数据到期时,高速缓存的项一直保留在高速缓存中,直到它们到期为止。一旦到期,对于下一个请求将检索原始项并在高速缓存中放置一个副本。由于绝对时间或日期已经到期,因此该项将立即到期。在使用绝对时间和日期时,项一旦到期,就不会再次永久地高速缓存。所有绝对时间值都是 GMT 格式。

指定相对时间段

与指定绝对时间不同,相对时间可用于指定文档置于高速缓存中多长时间后将到期,例如,几小时或几天。然后,从检索并添加文档到高速缓存的时间中计算出文档到期的实际时间。

与指定固定的高速缓存数据到期时间不同,可以相对于数据添加到高速缓存的时间来指定相对到期时间,例如,几小时或几天。

要表示相对时间,请使用以下格式:

  • REL {整数}{单位}
注: REL 的后面必须有一个空格。

此整数指定时间单位的整数倍。不支持小数。单位是使用一个不区分大小写的字符指定的:

  • S: 秒
  • H:小时
  • D:天
  • M:月
表 1. 格式化示例
在 connect 标记中 在 URL 请求中
  • EXPIRES="REL 2M"
  • EXPIRES="REL 9000s"
  • EXPIRES=REL 2M
  • EXPIRES=REL 9000s

第一个示例表示到期时间为两个月。第二个示例表示到期时间为 9000 秒(2.5 小时)。

根据设计,只能指定秒、小时、天或月。为了简化界面,不支持分钟(M 用于表示月)。但可以使用秒的倍数(例如,5 分钟用 300 秒表示)。

高速缓存,内容更新和联合

如果某个项被直接更新或者由于联合而进行了更新,将不会更新高速缓存。要在每个配置的高速缓存都到期后,呈示的项才会更新。选择支持联合策略的高速缓存超时参数至关重要。