2010-10-14 25 views
1

我有一個數據採集應用程序分解成一個客戶端和服務器。尋找一個網絡訪問哈希表

服務器有責任從硬件獲取數據,運行一些實時分析,並在數據被詢問時將數據記錄到磁盤。

客戶端是一個GUI,操作員可以用它來查看一些漂亮的圖形(由服務器生成),設置一些參數,並打開和關閉記錄。它通常運行在與服務器相同的機器上,但可以從網絡上的任何其他機器運行。

這兩個都是用Qt(C++)編寫的。兩者都在Linux上使用。

兩者之間的通信目前使用本地庫(C++,但不包括Qt),它本質上是一個哈希表。服務器有一個參數列表,如analysis.graph.width,這些參數可以是集合得到由服務器和客戶端。

系統正在重新設計以支持新硬件,如果有更好的存在,現在是替換此庫的好時機。這裏有一些要求:

  • 理想的情況下會(使用的QVariant存儲值,使用信號/插槽)
  • 必須允許值是許多不同類型(整數,字符串,雙打,布爾變量,列出使用Qt發揮出色這些
  • 鑰匙)將字符串
  • 一定要快,允許設置/ get操作達到每秒
  • 必須允許多個客戶端同時設置/獲取參數
倍210

我發現這個列表:http://en.wikipedia.org/wiki/Structured_storage,但那裏列出的庫似乎太複雜(分佈式,鏡像)或不夠cabable(值只能是字符串)。

是否有人知道符合部分或全部要求的庫?

回答

0

嗯戴夫我已經使用redis的同一個問題。它不會滿足你的所有要求,但符合

  1. 必須允許值是許多 不同類型(整數,字符串, 雙打,布爾變量,這些名單)
  2. 鍵將被串
  3. 必由之路要快,允許設置/獲取 操作高達每秒
  4. 必須允許多個客戶端30次 集/同時獲得參數

您可以使用c/C++ api與redis進行通信。 How to use Redis within a C++ program? ...是的,你將不得不將數據類型從一個轉換到另一個說char *到QString等