Asp.net signar和Memcached用于持久组数据

Asp.net signar和Memcached用于持久组数据,asp.net,memcached,signalr,Asp.net,Memcached,Signalr,我正在ASP.NET应用程序中使用信号器。我的应用程序需要的是按列出从各种服务器更新的组数据。根据信号员文件,这是我的责任。这意味着我需要使用一个外部服务器/服务来收集来自一个或多个服务器的数据,我可以从一个地方查询这些数据 我首先认为MemCached是最好的选择,因为它速度快,而且我需要放在那里的数据不稳定。问题是我需要存储集合,例如:集合A具有用户ID,因此我可以使用集合A具有2000个用户ID,而集合B具有40000个ID。问题是我需要更新此集合,并快速删除和插入id。我担心,由于这些命

我正在ASP.NET应用程序中使用信号器。我的应用程序需要的是按列出从各种服务器更新的组数据。根据信号员文件,这是我的责任。这意味着我需要使用一个外部服务器/服务来收集来自一个或多个服务器的数据,我可以从一个地方查询这些数据

我首先认为MemCached是最好的选择,因为它速度快,而且我需要放在那里的数据不稳定。问题是我需要存储集合,例如:集合A具有用户ID,因此我可以使用集合A具有2000个用户ID,而集合B具有40000个ID。问题是我需要更新此集合,并快速删除和插入id。我担心,由于这些命令将从多个服务器启动,而且我可能需要读取整个集合并在任一web服务器上进行更新,因此数据将不一致。Web服务器A可能会更新数据,但服务器B将在服务器A完成更新之前读取数据。存在并发冲突

我正在寻找在我的ASP.NET4.5应用程序中实现这种策略的最佳方法。我认为这可能是一种选择,可以使用内存数据库,也可以使用它来确保数据不完整

我想问你什么是解决我问题的最好办法

下面是我的问题的一个例子:

  • MemCached Server—存储集合(例如集合A、B、C、D),每个集合存储用户Id,用户Id可以是数千个甚至更多

  • Web服务器-安装了SignalR的我的Amazon EC2 Web服务器。可以在负载平衡器后面。这些服务器需要获得对memcached服务器的访问权,并通过集合名称(例如“collection_23”)获取完整的集合项。他们需要能够删除项目(用户Id)和添加项目。所有这些都应该尽可能快


我希望我的解释是正确的。谢谢。

或者,您可以使用Memcached,从内存中提供所有服务。Redis除了简单的键值数据存储之外,还有许多其他功能;对于您可能使用的特定案例,这确保了数据的一致性

或者,您可以使用,比如Memcached,从内存中提供所有服务。Redis除了简单的键值数据存储之外,还有许多其他功能;对于您可能使用的特定案例,这确保了数据的一致性

在另一篇帖子的评论中,它显示了一个指向redis提供者的链接。该链路已断开,似乎已集成到主信号机项目中:

这里有redis nuget:

和文件在此:

在另一篇帖子的评论中,它显示了指向redis提供商的链接。该链路已断开,似乎已集成到主信号机项目中:

这里有redis nuget:

和文件在此:

这里已经有一个针对Signal的Redis消息存储提供程序:这里已经有一个针对Signal的Redis消息存储提供程序: