有没有人知道.NET的任何缓存提供程序,它们通过密钥直接输入/输出流数据,而不是序列化/反序列化对象?
我非常希望AppFabric(Velocity)会这样做,但它似乎只能处理像内置ASP.NET缓存这样的对象。
答案 0 :(得分:1)
NCache Enterprise是我能找到的唯一支持流式传输的.NET缓存提供程序:
// Insert
using (var cacheStream = cache.GetCacheStream("mykey", StreamMode.Write))
cacheStream.Write(...);
// Retrieve
using (var cacheStream = cache.GetCacheStream("mykey", StreamMode.Read))
cacheStream.Read(...);
答案 1 :(得分:0)
您可以在WCF服务中轻松实现这一点(我认为这就是您想要做的。)
要么客户端定期轮询新数据,要么实施callback pattern以便在订阅的客户端到达时向订阅的客户端发送新数据,具体取决于他们订阅的密钥。
否则您可以让每个客户端通过套接字连接到您的服务,并将您从源接收的数据重复到这些套接字,并自己保存数据,这样如果新客户端连接,您可以发送大量数据给他们,他们容易消化的块。
另外,你可以设计应用程序,不关心它是什么数据流,只是它流式传输blob,并在将来用于其他应用程序。
编辑:你总是可以使用streaming transport构建到WCF中来流式传输给你的用户,但是除非他们也要实现它,否则仍然无法解决你从源查询数据的问题。