在C语言中是否有类似于Java的缓存?

在C语言中是否有类似于Java的缓存?,java,c#,Java,C#,在JavaSpringBoot中,我可以使用注释@EnableCaching轻松启用缓存,并使用@Cacheable使方法缓存结果,这样,任何使用完全相同参数的方法输入都不会调用该方法,而是使用缓存结果立即返回 C语言中有类似的东西吗 我过去所做的是我必须实现我自己的缓存类,我自己的数据结构,这是一个很大的麻烦。我只想让程序有一个简单的方法来缓存结果,如果输入参数相同,则返回准确的结果 编辑:我不想使用任何第三方的东西,所以没有MemCached,没有Redis,没有RabbitMQ,等等。。。

在JavaSpringBoot中,我可以使用注释@EnableCaching轻松启用缓存,并使用@Cacheable使方法缓存结果,这样,任何使用完全相同参数的方法输入都不会调用该方法,而是使用缓存结果立即返回

C语言中有类似的东西吗

我过去所做的是我必须实现我自己的缓存类,我自己的数据结构,这是一个很大的麻烦。我只想让程序有一个简单的方法来缓存结果,如果输入参数相同,则返回准确的结果

编辑:我不想使用任何第三方的东西,所以没有MemCached,没有Redis,没有RabbitMQ,等等。。。正在寻找一个非常简单而优雅的解决方案,比如Java的@Cacheable。

缓存

缓存是Microsoft提供的最有价值的功能。它是一种相对较小但可以快速访问的内存类型。它本质上存储可能再次使用的信息。例如,web浏览器通常使用缓存,通过在本地存储网页文件的副本(例如在本地计算机上),使网页加载速度更快

缓存

缓存是将数据存储到缓存中的过程。使用C语言进行缓存非常容易。System.Runtime.Caching.dll提供了在C中使用缓存的功能。在本图中,我使用了以下类:

对象缓存

蜜饯

CacheItemPolicy

对象缓存 :CacheItem类提供缓存项的逻辑表示,该缓存项可以包括使用RegionName属性的区域。它存在于System.Runtime.Caching中

蜜饯 :此类也位于System.Runtime.Caching下,它表示实现缓存内存中的类型

CacheItemPolicy :表示特定缓存项的一组逐出和过期详细信息

.NET提供

System.Web.Caching.Cache-ASP.NET中的默认缓存机制。您可以通过property Controller.HttpContext.Cache获取此类的实例,也可以通过singleton HttpContext.Current.Cache获取此类的实例。该类不需要显式创建,因为它使用另一个内部分配的缓存引擎。要使代码正常工作,最简单的方法是执行以下操作:

public class DataController : System.Web.Mvc.Controller{ 
  public System.Web.Mvc.ActionResult Index(){
    List<object> list = new List<Object>();

    HttpContext.Cache["ObjectList"] = list;                 // add
    list = (List<object>)HttpContext.Cache["ObjectList"]; // retrieve
    HttpContext.Cache.Remove("ObjectList");                 // remove
    return new System.Web.Mvc.EmptyResult();
  }
}

是的,它被称为面向方面的AOP编程,例如PostSharp提供的,我想你正在寻找David,它是否只在.NET Core中提供?但是我不使用.net内核……@Tim如果你想使用ASP.net而不是ASP.net内核。
var cache = new System.Runtime.Caching.MemoryCache("MyTestCache");
cache["ObjectList"] = list;                 // add
list = (List<object>)cache["ObjectList"]; // retrieve
cache.Remove("ObjectList");                 // remove