用Apache进行Memcached-处理过时的对象

时间:2018-10-31 11:39:54

标签: apache memcached

我使用具有以下默认配置的memcached和Apache

CacheEnable socache /
CacheSocache memcache:IP:PORT
MemcacheConnTTL 30

30秒到期并且输入相同URL的请求时,行为是什么?有没有配置缓存键的方法?即什么是使请求唯一的信息? 如果服务器找不到答案怎么办? (如获取新更新的对象的超时),可以将其配置为服务旧对象吗?

谢谢

1 个答案:

答案 0 :(得分:1)

30秒到期并且输入相同URL的请求是什么情况

Apache只需创建一个与memcached的新连接。这并不意味着存储在memcached中的数据会发生任何事情

https://httpd.apache.org/docs/2.4/mod/mod_socache_memcache.html#memcacheconnttl

  

设置时间以保持与内存缓存服务器的空闲连接   还活着(仅限线程平台)。

如果您需要控制对象在缓存中存储多长时间,请检出CacheDefaultExpire

是否可以配置缓存键

使用URL构建密钥,但是您可以部分配置使用URL的哪些部分,请查看 CacheIgnoreQueryStringCacheIgnoreURLSessionIdentifiers

即什么是使请求唯一的信息

https://httpd.apache.org/docs/2.4/mod/mod_cache.html#cacheenable

  

CacheEnable指令指示mod_cache将URL缓存在或   网址字符串下方

请注意,并非所有请求都可以缓存,其中有很多规则

如果服务器无法获得答案怎么办?是否可以将其配置为服务于旧对象

您需要CacheStaleOnError

https://httpd.apache.org/docs/2.4/mod/mod_cache.html#cachestaleonerror

  

何时打开CacheStaleOnError指令以及何时过时   缓存中有可用数据,缓存将响应5xx   来自后端的响应,方法是返回陈旧的数据,而不是返回   5xx回复