C#windows应用程序的缓存服务器
我正在windows应用程序(c#)中使用System.Runtime.Caching 这适用于单机。现在我想在不同计算机上运行的多个实例之间共享缓存 因此,我正在考虑使用MEMCACHED或Hazelcast IMDG 任何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#库:使用内存缓存,需要清楚地了解以
谢谢我建议您使用
Redis
进行缓存。这里有一个很好的Redis c#库:我建议您使用
Redis
进行缓存。这里有一个很好的Redis c#库:使用内存缓存,需要清楚地了解以下用例:
IQueryable
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缓存中