2017-09-05 38 views
1

我打算使用緩存在我的Node.js應用程序,只是爲了避免數據庫中讀取操作。它只是少量的數據(而不是每次從數據庫讀取相同的數據)。我打算在每臺服務器上都有一個本地緩存。 我應該使用Node Cache(https://www.npmjs.com/package/node-cache)還是Redis?節點緩存VS Redis的用於簡單的緩存

這將是更快,效率呢?

+0

如果不是大量的數據,我會使用內存中的東西。但那只是我的個人意見。 – robertklep

回答

2

如果你打算在未來的縮放您的應用程序,你可以選擇Redis的

如果這就是你需要你的內存中去性能好一個小項目。

作爲一個初學者,我推薦使用內存中的緩存,但是使用控制機制的反轉機制能夠在使用redis之後輕鬆地重構這些內容。嘗試是這樣的:

// cache service 

module.exports = (provider) => { 
    // provider here is an abstraction of redis or in memory node 
    // implement your logic 

    const save = (key, item) => { 
    provider.save(key, item); 
    // return promise callback etc 
    }  

    const getItem = (key) => { 
     provider.get(key); 
    } 

    return { 
    save, 
    getItem, 
    } 
} 

然後你只需要使用所需的供應商,你可以很容易地重構代碼後,無需更改應用中的所有文件。

0

這取決於你希望緩存對象的大小,你可以單獨使用Redis的,單獨或本地緩存,或兩者的組合。 Redis的會給你喜歡集中的緩存,從而更高的緩存命中率許多優點(作爲一個Web服務器設置緩存,所有其他Web服務器可以使用的值),而在節點緩存中的緩存每個服務器設置,因此具有較低的緩存命中率。 本地緩存的性能優點是避免了網絡呼叫,這是一個微不足道的開銷,如果你的目標是不是非常大,Redis的會給你良好的性能在這兩種情況下,如果你在本地承載它的Web服務器或專用的單獨的服務器。 如果你的對象很大,比如說MB很少,那麼網絡跳數是不可取的,你應該從數據庫或redis緩存中獲取對象,並在本地緩存它。