gpt4 book ai didi

ruby-on-rails - Redis:在 httparty 客户端中正确缓存来自 API 的响应,根据 api 响应中的缓存 header 使缓存过期

转载 作者:可可西里 更新时间:2023-11-01 11:31:45 29 4
gpt4 key购买 nike

在我的新 Rails 应用程序中,它是一个 API 消费者/客户端。我正在使用 httParty 来请求。我正在使用这篇文章中建议的代码 http://www.binpress.com/tutorial/ruby-tutorial-building-a-robust-json-api-client/140

def handle_caching(options)
if cached = $redis.get(cache_key(options))
eval(cached)
else
yield.tap do |results|
$redis.set(cache_key(options), results)
end
end
end

但是它会永久缓存页面,并且当 api 中的内容发生变化时页面不会过期。如何根据 API 响应中的缓存 header 正确地使缓存过期。

最佳答案

redis 中的过期时间可以通过在键上设置 TTL 来获得,即一定的时间生活。这仅在您事先知道什么是 key 的最佳 TTL 的情况下才有效。 Redis 将在指定的 TTL 后使 key 过期。

但是,只要 API 响应中的缓存 header 发生变化,您就必须手动使缓存失效/更新。

关于ruby-on-rails - Redis:在 httparty 客户端中正确缓存来自 API 的响应,根据 api 响应中的缓存 header 使缓存过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39504898/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com