我使用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的哪些部分,请查看CacheIgnoreQueryString
、CacheIgnoreURLSessionIdentifiers
即,哪些信息使请求具有唯一性
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响应