Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#windows应用程序的缓存服务器_C#_.net_Caching - Fatal编程技术网

C#windows应用程序的缓存服务器

C#windows应用程序的缓存服务器,c#,.net,caching,C#,.net,Caching,我正在windows应用程序(c#)中使用System.Runtime.Caching 这适用于单机。现在我想在不同计算机上运行的多个实例之间共享缓存 因此,我正在考虑使用MEMCACHED或Hazelcast IMDG 任何c#实施或想法/结果如何运作。请注意,我正在为windows应用程序执行此操作。任何其他建议也欢迎 谢谢我建议您使用Redis进行缓存。 这里有一个很好的Redis c#库:我建议您使用Redis进行缓存。 这里有一个很好的Redis c#库:使用内存缓存,需要清楚地了解以

我正在windows应用程序(c#)中使用System.Runtime.Caching

这适用于单机。现在我想在不同计算机上运行的多个实例之间共享缓存

因此,我正在考虑使用MEMCACHED或Hazelcast IMDG

任何c#实施或想法/结果如何运作。请注意,我正在为windows应用程序执行此操作。任何其他建议也欢迎


谢谢

我建议您使用
Redis
进行缓存。

这里有一个很好的Redis c#库:

我建议您使用
Redis
进行缓存。

这里有一个很好的Redis c#库:

使用内存缓存,需要清楚地了解以下用例:

  • 它只是一个内存转储吗
  • 它是否需要查询能力,如Sql Server的实体框架等框架提供的
    IQueryable
  • 如果只是内存转储,那么Redis、MemCache就可以了,因为它们只是将数据以二进制形式存储在内存中,在客户端位置获取后反序列化,如果您查询大量数据,并且希望在源位置执行过滤、排序、分页等处理,这是不好的

    如果需要
    IQueryable
    处理,请查看
    ApacheIgnite.Net。Hazelcast和ScaleOut
    ,其中我发现Apache Ignite是最先进的,因为它不支持通过IQueryable实现的
    表达式树,还支持
    Ansi Sql
    ,这是相对于其他缓存的一个非常大的优势


    还有一点,为什么不用现代内存系统(如
    VoltDB
    )或文档数据库(如
    Raven
    )来取代Sql Server或类似的数据库呢?因为它们速度更快,集成度高,完全不需要分离缓存使用内存缓存,需要清楚地了解以下用例:

  • 它只是一个内存转储吗
  • 它是否需要查询能力,如Sql Server的实体框架等框架提供的
    IQueryable
  • 如果只是内存转储,那么Redis、MemCache
    就可以了,因为它们只是将数据以二进制形式存储在内存中,在客户端位置获取后反序列化,如果您查询大量数据,并且希望在源位置执行过滤、排序、分页等处理,这是不好的

    如果需要
    IQueryable
    处理,请查看
    ApacheIgnite.Net。Hazelcast和ScaleOut
    ,其中我发现Apache Ignite是最先进的,因为它不支持通过IQueryable实现的
    表达式树,还支持
    Ansi Sql
    ,这是相对于其他缓存的一个非常大的优势



    还有一点,为什么不用现代内存系统(如
    VoltDB
    )或文档数据库(如
    Raven
    )来取代Sql Server或类似的数据库呢?因为它们速度更快,集成度高,完全不需要分离缓存

    Redis!在这种情况下,Redis cache是最好的选择。Redis是较差的选择之一,当您需要查询能力时。如果您确实只需要缓存,请尝试CacheManager.NET(),它始终支持内存、Redis或memcachedRedis!在这种情况下,Redis cache是最好的选择。Redis是较差的选择之一,当您需要查询能力时。如果您确实只需要缓存,请尝试CacheManager.NET(),它支持内存中的Redis或memcachedUsing Redis,它会作为windows服务安装吗?在具有不同windows OS版本的客户端位置安装它有多容易不成问题,但请检查这可能是一个付费客户端,逐栈溢出是free@JohnyBravo您可以使用for redis server,然后使用connection string.hmm连接到应用程序,但应用程序是基于桌面的。所以互联网连接不是绝对的使用Redis,它会作为windows服务安装吗?在具有不同windows操作系统版本的客户端位置安装它有多容易不成问题,但请检查这可能是一个付费客户端,逐栈溢出是free@JohnyBravo您可以使用for redis server,然后使用connection string.hmm连接到应用程序,但应用程序是基于桌面的。所以互联网连接不是绝对的,我使用的是MySql。此时迁移是不可能的。我只需要一个内存转储。考虑一下,在我的理解中比ReDIS更好的选择。甚至可以满足未来的需求。谢谢我正在检查Apache IgniteIgnition.Start();var cfg=new IgniteConfiguration{//为Ignite序列化注册自定义类BinaryConfiguration=new BinaryConfiguration(typeof(TempCounterSale))};IIgnite ignite=点火启动(cfg);ICache cache=ignite.GetOrCreateCache(“TempDt”);cache=dtable;无法将datatable放入Ignite缓存我正在使用MySql。此时迁移是不可能的。我只需要一个内存转储。考虑一下,在我的理解中比ReDIS更好的选择。甚至可以满足未来的需求。谢谢我正在检查Apache IgniteIgnition.Start();var cfg=new IgniteConfiguration{//为Ignite序列化注册自定义类BinaryConfiguration=new BinaryConfiguration(typeof(TempCounterSale))};IIgnite ignite=点火启动(cfg);ICache cache=ignite.GetOrCreateCache(“TempDt”);cache=dtable;无法将datatable放入Ignite缓存中