2017-09-26 118 views
0

我正在用PHP腳本每分鐘收集一次體育數據並將它們存儲到Redis中。這一切都在一臺Ubuntu 16.04服務器上完成。我們稱之爲收集器服務器。redis:40多個服務器讀取相同的redis內容

我的目標是讓Redis生成的數據庫可供我們的客戶使用。數據庫只對我們的客戶是隻讀的。

我們將客戶服務器連接到我們的Redis內容的方式是直接 將它們指向該收集器服務器的Redis主機端口。如果我們所有的客戶都想訪問數據庫,恐怕收集器服務器會被卡住(40多個客戶)...

Redis內容每分鐘更新一次,我們是客戶端的所有者,服務器和內容。

在Redis中是否有設置要麼可以讓40多臺外部服務器讀取相同的Redis內容數據庫而不殺死收集服務器?

回答

1

在擴展之前,我建議您使用真實和/或模擬負載爲您的應用程序與Redis進行基準測試 - 單個Redis服務器可以處理令人印象深刻的負載(請參閱https://redis.io/topics/benchmarks),因此您可能正在設計此過程。

這就是說,按比例只讀,閱讀有關雷迪斯'replication。如果您還想擴展寫入,請閱讀Redis cluster

+0

ok Itamar,我會檢查複製方式。謝謝 –

1

+1對於Itamar的回答。但是,您應該記住一件更重要的事情,讓您的客戶直接連接到您的Redis資源是危險的,應該避免。

  1. 他們將擁有您的主機:端口和密碼,他們將能夠連接,寫入,修改,刪除甚至關閉或更改您的密碼。
  2. 它不具備可擴展性,當它已經太晚,太難改變時,您可能會注意到它。
  3. 有些客戶可能會遇到連接和傳遞一些路由器和FW與非標準TCP端口的問題。

您應該有一個應用服務器爲您的客戶進行Redis通信。

+0

我們擁有客戶的服務器;他們在我們這邊。這是我們所做的白色標記業務。客戶只是租用我們的服務,他們不添加他們自己的代碼或服務器。所以整個溝通步驟都在我們這邊。感謝您的回答 –