使用Apache Memcached处理过时的对象



我使用memcached和Apache,默认配置如下

CacheEnable socache /
CacheSocache memcache:IP:PORT
MemcacheConnTTL 30

当30秒到期并且收到对同一URL的请求时,会发生什么行为?有没有办法配置缓存密钥?也就是说,哪些信息使请求具有唯一性?如果服务器无法得到答案怎么办?(比如获取新更新对象的超时(它可以配置为服务于旧对象吗?

感谢

当30秒到期并且收到对相同URL的请求时,行为会是什么

Apache只需创建一个到memcached的新连接。这并不意味着存储在memcached 中的数据会发生什么变化

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

设置与memcache服务器保持空闲连接的时间活动(仅限线程平台(。

如果需要控制对象在缓存中的存储时间,请查看CacheDefaultExpire

有没有办法配置缓存密钥

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

即,哪些信息使请求具有唯一性

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

CacheEnable指令指示mod_cache将URL缓存在或以下url字符串

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

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

您需要CacheStaleOnError

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

当CacheStaleError指令打开时,以及当过时时数据在缓存中可用,缓存将响应5xx通过返回过时的数据而不是5xx响应

最新更新