websocket—在asp.net应用程序中缓存redis数据的后台进程

svmlkihl  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(192)

我创建了一个非基于浏览器的客户机-服务器聊天应用程序,它具有以下特征。1) redis用于存储所有聊天频道的内容2)iis是服务器3)客户端使用websockets与服务器通信。
总的来说,这是可行的,但我必须弄清楚如何解决这个问题。我创建了一个由类的静态初始化器创建的主线程,以避免每个websocket线程不断地轮询redis以获取新消息。主线程可以监视特定redis密钥以查看更改的聊天频道,并提取最新数据,websocket线程必须(线程安全地)检查iis服务器上的缓存数据。
已经指出的问题(我对asp.net不熟悉,但一般来说不是c)1)在asp.net中运行后台线程不是一个好主意2)pub sub redis和iis不是一个很好的组合,因为它的连接太多
一个明显的解决方案是让每个websocket线程轮询其特定的通道,以查看长度是否已更改,从而指示新消息。但这听起来像是一个非常浪费的实现,因为要保持系统低延迟(每个用户连接1个),每秒需要数千或10秒的redis请求。
所以问题是,我是否可以安全地拥有一个排序过程来获取最近更改的redis聊天频道条目的数据,这样我的websocket线程就可以快速测试是否过时了?
如果相关的我的应用程序运行在aws beanstalk上,这使得后台进程更难控制,但并非不可能。
编辑:这个链接似乎表明也许我不应该关心redis请求的轮询方式:redis非常快

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题