在我的项目应用程序中,许多小型应用程序已经集成,并且内置了不同的技术,例如
我的应用也使用 AWS 作为云合作伙伴。
我需要在我的应用中实施缓存机制。我在S3存储桶中存储了一些值,我正在使用API调用来提取值。我想将这些值保存在Cache中。因为,它是在多种技术(尤其是Angular和ASP.Net MVC)中实现的,是否可以共同使用任何缓存机制?
我已就此做了一些工作,并观察到以下缓存可用
由于AWS是我的云合作伙伴,因此它提供 ElastiCache 作为支持MemCached和Redis的Web服务。我不清楚这是否会像普通的内存缓存(在ASP .NET Core中)一样,或者这将引用数据库进行缓存并从那里检索详细信息(导致往返!)?
任何人都可以让我知道最好的缓存技术可以处理我的应用程序的.net mvc和angular吗?
答案 0 :(得分:1)
这有点棘手(我假设您正在使用多个memcache服务器)。当你使用memcache时,很大程度上取决于客户端的实现。您的客户决定在哪个服务器上存储特定密钥。服务器并不知道其他服务器的存在。
当您使用不同的语言时,您将使用不同的客户端,因此每个客户端将实现自己的算法来决定将放置密钥的服务器。因此,有些情况下,Angular上的客户端将在服务器“S1”上存储密钥“K1”,而.Net Client将在服务器“S2”上存储相同的密钥
这将增加另一个使这些密钥无效的问题,因为需要使两个服务器上的密钥无效。
还有一个问题。如果密钥很常见,则必须以json格式存储所有对象。因此,所有编程语言都将读取密钥存储在同一个memcache服务器上。
我认为最好的事情是设置足够小的时间来使memcache上的密钥无效(如果可行)并为每种客户端类型存储具有不同前缀或后缀的密钥。因此.net客户端将密钥K1存储为'K1-net',而具有Angular的密钥将将其存储为“k1-ang”。
我也会探索可能有帮助的redis(不确定)