2014-12-21 110 views
4

我正在嘗試爲節點應用程序找到最佳的緩存解決方案。有幾個模塊可以管理這個。最流行的:https://www.npmjs.com/package/node-cache在Node.js中緩存的最佳方式

但是我發現,響應速度更快,如果我只保存了一些成果到像一個變量:

var cache = ["Kosonsoy","Pandean","Ḩadīdah","Chirilagua","Chattanooga","Hebi","Péruwelz","Pul-e Khumrī"]; 

然後我就可以在一個固定的時間間隔更新變量,就是這也歸類爲緩存?這種方法是否有任何已知的問題/問題?因爲它明確地提供了最快的響應時間。

回答

2

當然,使用本地內存來存儲數據會更快。 對於有限的緩存大小,這很好,但可能會很快耗盡您的所有進程內存。

我會建議使用模塊,因爲有相當數量的合作智力投資於他們。或者,您可以使用專用實例來運行Redis等用作緩存的內容。

拋開另一種選擇,如果您堅持使用您的解決方案,我建議小改進。

相反

var cache = ["Kosonsoy","Pandean","Ḩadīdah","Chirilagua","Chattanooga","Hebi","Péruwelz","Pul-e Khumrī"]; 

嘗試使用對象作爲鍵值存儲。

這將使搜索和更新條目更快。

var cache = {"Kosonsoy":data,"Pandean":moreData,...}; 

在陣列搜索需要的迭代而訪問對象是一樣簡單

var storedValue = cache["Kosonosoy"]; 

節省

cache[key] = value; 
1

如果你使用many workers你將有一個重複的緩存,因爲它們沒有共享內存。

當然,您可以將其用於小數據。將數據保存在變量中一段時間​​可以稱爲緩存。

+0

對於我已經使用(有時)[Hazelcast]在過去的十年( https://hazelcast.com)在我的Java環境中緩存AWS上十幾臺Tomcat服務器上的數據。工作非常好。我只是做了搜索,似乎他們有一個[Node.js客戶端](https://github.com/hazelcast/hazelcast-nodejs-client)端口。不知道它是否商業準備好,但絕對值得研究。 – Jeach