动态处理要在C ++中使用Redis发布的通道

时间:2017-12-17 19:18:41

标签: c++ redis

我有2个应用程序(javascript中的GUI和C ++中的另一个)需要相互通信。

C ++应用程序(服务器)包含多个实时传感器数据,它必须流式传输到GUI(客户端)。数据被缓冲并作为一个大块发送。 GUI只是渲染数据而不是在本地缓冲它(当前库渲染速度相对较慢)。

我们想要使用Redis,其中每个通道都是传感器。在客户端,用户可以选择必须流式传输哪个传感器。这需要让服务器知道要发布到哪个频道。

现在问题更多的是性能和可扩展性。哪种情况最好?

  1. 发布所有传感器数据。 + -30个传感器,数据最大64位。每个高达10,000个样本的流量高达50hz。 (这绝对是最重要的一切,但确实给了一个棒球场。)
  2. 将频道名称存储在Redis中作为JSON对象或命名空间键。听取set事件服务器端,get频道并缓存它们并动态发布到频道。
  3. 与上述内容相同,但在{+ 1}}来自Redis的每个周期中的频道,而不会收听任何get事件。
  4. 使用set频道,客户端在更改时发布配置(通过JSON字符串)。服务器端我们订阅configuration频道并适当处理新频道。
  5. 别的。请详细说明。

1 个答案:

答案 0 :(得分:0)

尝试使用最近发布的redis 5.0中的redis streams功能。如果您正在寻找支持Redis流的高性能C ++库,请尝试使用bredis