Asp.net 带Redis背板的信号器扩展
我有一个网站今天使用信号,它的工作很好。现在我想实现Redis背板,以便可以在多个服务器上扩展应用程序 问题是,我在静态ConcurrentDictionary中保留了关于客户机的附加信息,例如名称和客户机连接ID。当我扩展到多个服务器时,这当然行不通,我想知道在我构建自己的“RedisDictionary”之前,是否有人可以分享一些最佳实践Asp.net 带Redis背板的信号器扩展,asp.net,signalr,Asp.net,Signalr,我有一个网站今天使用信号,它的工作很好。现在我想实现Redis背板,以便可以在多个服务器上扩展应用程序 问题是,我在静态ConcurrentDictionary中保留了关于客户机的附加信息,例如名称和客户机连接ID。当我扩展到多个服务器时,这当然行不通,我想知道在我构建自己的“RedisDictionary”之前,是否有人可以分享一些最佳实践 谢谢您可以创建一个Redis背板来发布和订阅您的个人客户端信息 将客户端信息存储为json字符串,并使用客户端名称作为通道名称。然后,您可以将所有服务器订
谢谢您可以创建一个Redis背板来发布和订阅您的个人客户端信息
将客户端信息存储为json字符串,并使用客户端名称作为通道名称。然后,您可以将所有服务器订阅到客户端。无论何时对客户进行更改,它的更新信息将被发布,您可以通过反序列化json字符串来更新存储的客户端信息。Signal在Redis中存储的唯一内容是消息id,然后它使用通道获得有关新消息的通知-因此Redis中没有存储连接id。我知道,这就是我在ConcurrentDictionary中存储额外数据的原因。问题是,将字典或哈希表移动到Redis是否有最佳实践,因为它需要跨web服务器共享?您可以将它们存储在Redis中,也可以使用Redis频道向其他服务器广播。在这两种情况下都有权衡(线程安全与查找连接信息)。很难说哪一个更好-这可能取决于什么是重要的-延迟与一致性等,这是特定于应用程序的。