我使用具有以下默认配置的memcached和Apache
CacheEnable socache /
CacheSocache memcache:IP:PORT
MemcacheConnTTL 30
30秒到期并且输入相同URL的请求时,行为是什么?有没有配置缓存键的方法?即什么是使请求唯一的信息? 如果服务器找不到答案怎么办? (如获取新更新的对象的超时),可以将其配置为服务旧对象吗?
谢谢
答案 0 :(得分:1)
Apache只需创建一个与memcached的新连接。这并不意味着存储在memcached中的数据会发生任何事情
https://httpd.apache.org/docs/2.4/mod/mod_socache_memcache.html#memcacheconnttl
设置时间以保持与内存缓存服务器的空闲连接 还活着(仅限线程平台)。
如果您需要控制对象在缓存中存储多长时间,请检出CacheDefaultExpire
使用URL构建密钥,但是您可以部分配置使用URL的哪些部分,请查看
CacheIgnoreQueryString
,CacheIgnoreURLSessionIdentifiers
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回复