我正在使用ASP.NET MVC和Angular创建一个Web应用程序。要缓存主仪表板的结果,我正在使用内置的IMemoryCache。
我正在使用GetorCreate作为其Async版本,但TryGetValue()和GetorCreate()之间的真正区别是什么?难道他们都不会尝试从缓存中获取值,但如果不是,我们可以做到吗?
答案 0 :(得分:0)
也许将来对某人有用。
GetOrCreate():通过使用cache.GetOrCreate(),您可以检查所传递的密钥是否存在以及是否不存在。 将创建新的缓存键值。
cache.GetOrCreate()<string>(“username”, entry => { return “admin”; });
TryGetValue()::通过使用cache.TryGetValue(),我们可以检查密钥是否存在。这里主要的区别是 cache.GetOrCreate()和cache.TryGetValue()方法是TryGet() 方法将仅检查密钥是否存在,而 GetOrCreate()方法将缓存密钥是否存在以及是否 它不存在,然后可以创建一个新的。
cache.TryGetValue()<string>(“username”, out string username);
但是两种方法之间没有太多差异
链接: https://www.itpathsolutions.com/know-about-in-memory-caching-asp-net-core/ https://docs.microsoft.com/en-US/aspnet/core/performance/caching/memory?view=aspnetcore-3.1#cache-guidelines