支持流媒体的.NET缓存提供程序?

时间:2010-07-12 12:22:08

标签: c# caching memcached appfabric

有没有人知道.NET的任何缓存提供程序,它们通过密钥直接输入/输出流数据,而不是序列化/反序列化对象?

我非常希望AppFabric(Velocity)会这样做,但它似乎只能处理像内置ASP.NET缓存这样的对象。

2 个答案:

答案 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中来流式传输给你的用户,但是除非他们也要实现它,否则仍然无法解决你从源查询数据的问题。