寻找可通过网络访问的哈希表

时间:2010-10-14 17:35:30

标签: linux qt hash client-server network-protocols

我将数据采集应用程序分解为客户端和服务器。

服务器负责从硬件中获取数据,运行一些实时分析,并在询问时将数据记录到磁盘。

客户端是一个GUI,操作员可以使用它来查看一些漂亮的图形(由服务器生成),设置一些参数,以及打开和关闭记录。它通常与服务器在同一台机器上运行,但可以从网络上的任何其他机器运行。

两者都是用Qt(C ++)编写的。两者都在Linux上使用。

两者之间的通信目前使用本地库(在C ++中,但不是Qt)完成,本质上是一个哈希表。服务器有一个参数列表,例如analysis.graph.width,这些参数可以由服务器和客户端设置获取

系统正在重新设计以支持新硬件,如果存在更好的东西,现在是更换此库的好时机。以下是一些要求:

  • 理想情况下可以很好地使用Qt(使用QVariant存储值,使用信号/插槽)
  • 必须允许值为多种不同类型(整数,字符串,双精度,bool,列表)
  • 键将是字符串
  • 必须快速,允许每秒设置/获取操作最多30次
  • 必须允许多个客户端同时设置/获取参数

我找到了这个列表:http://en.wikipedia.org/wiki/Structured_storage,但是那里列出的库看起来太复杂(分布式,镜像式)或者不够可用(值只能是字符串)。

是否有人知道哪些库符合部分或全部要求?

1 个答案:

答案 0 :(得分:0)

Dave我曾经使用过redis来解决同样的问题。它不符合您的所有要求,但符合

  1. 必须允许值很多 不同的类型(整数,字符串, 双打,布尔,那些名单)
  2. 键将是字符串
  3. 必须快,允许设置/获取 每秒最多运行30次
  4. 必须允许多个客户端 同时设置/获取参数
  5. 您可以使用c / c ++ api与redis进行通信。 How to use Redis within a C++ program? ...是的,您必须将数据类型从一个转换为另一个,将char *转换为QString等。