我在Windows应用程序(c#)中使用System.Runtime.Caching
这适用于单机。现在我想在不同计算机上运行的多个实例之间共享缓存。
所以我在考虑使用MEMCACHED或Hazelcast IMDG
任何c#实现或想法/结果如何工作。请注意我正在为Windows应用程序执行此操作。任何其他建议也是受欢迎的。
由于
答案 0 :(得分:2)
我建议您使用Redis
进行缓存
这是Redis的一个很好的c#库:ServiceStack.Redis
答案 1 :(得分:2)
使用内存缓存,需要清楚了解以下用例:
IQueryable
,由Sql Server
的实体框架等框架提供?如果它仅在内存转储中,那么Redis, MemCache
就可以了,因为它们只是将数据作为二进制文件存储在内存中,一旦在客户端位置获取,就会反序列化,如果您查询大量数据,那就不好了并希望在源头进行过滤,排序,分页等处理。
如果需要IQueryable
处理,请查看ApacheIgnite.Net. Hazelcast and ScaleOut
,我发现Apache Ignite最先进,因为它不支持Expression trees, via IQueryable
,但是还Ansi Sql
,这是一个比其他缓存
另外还有一点,为什么不用像VoltDB
这样的现代内存系统或类似Raven
的文档数据库来替换Sql Server或类似的数据库,因为它们更快,集成度更高,完全排除了需要单独缓存