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

时间:2017-04-04 05:47:02

标签: c# .net caching

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

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

所以我在考虑使用MEMCACHED或Hazelcast IMDG

任何c#实现或想法/结果如何工作。请注意我正在为Windows应用程序执行此操作。任何其他建议也是受欢迎的。

由于

2 个答案:

答案 0 :(得分:2)

我建议您使用Redis进行缓存 这是Redis的一个很好的c#库:ServiceStack.Redis

答案 1 :(得分:2)

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

  1. 只是内存转储吗?
  2. 是否需要查询功能,如IQueryable,由Sql Server的实体框架等框架提供?
  3. 如果它仅在内存转储中,那么Redis, MemCache就可以了,因为它们只是将数据作为二进制文件存储在内存中,一旦在客户端位置获取,就会反序列化,如果您查询大量数据,那就不好了并希望在源头进行过滤,排序,分页等处理。

    如果需要IQueryable处理,请查看ApacheIgnite.Net. Hazelcast and ScaleOut,我发现Apache Ignite最先进,因为它不支持Expression trees, via IQueryable,但是还Ansi Sql,这是一个比其他缓存

    更大的优势

    另外还有一点,为什么不用像VoltDB这样的现代内存系统或类似Raven的文档数据库来替换Sql Server或类似的数据库,因为它们更快,集成度更高,完全排除了需要单独缓存