gpt4 book ai didi

azure - 跨 Azure 中的多个实例刷新内存中缓存

转载 作者:行者123 更新时间:2023-12-02 05:56:30 25 4
gpt4 key购买 nike

我有一个使用内存缓存的 Azure Web 应用程序,添加 key 如下

    public static void Add(object item, string key)
{
var wrapper = new CacheItemWrapper()
{
InsertedAt = DateTime.Now,
Item = item
};
MemoryCache.Default.Add(key, wrapper, ObjectCache.InfiniteAbsoluteExpiration);
}

有时,我们的应用程序的用户会进行更改,从而需要刷新缓存。我可以调用一个清除缓存的方法,问题是,它仅适用于接收请求的实例。其他实例在内存中仍然保留旧值。

有什么办法我可以做这两件事

a) 跨多个实例运行一个方法,或者b) 引发一个所有实例都会监听的事件?

上面的代码可以更改为在短时间内过期,以便所有实例都可以获取此信息。但是,更新缓存的过程相当长,这可能会影响性能。鉴于应用程序知道何时需要刷新缓存,如果能够以编程方式完成,效果会更好,响应速度也会更快。

最佳答案

我知道这是一个五年多前的老问题了。但这仍然是人们可能会遇到的一个用例。最近遇到了类似的要求。

团队中某人(比我更聪明)提出的解决方案是包含一个像 Redis/ServiceBus 这样的消息代理,并让应用程序实例监听它。

一旦代理上有新消息,所有应用服务实例都会收到通知,并且它们可以通过实现来处理通知以清除整个缓存或特定键。

关于azure - 跨 Azure 中的多个实例刷新内存中缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45278349/

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