2011-09-23 52 views
107

我已經閱讀了關於Redis等關鍵/價值商店的優秀內容,但我似乎無法弄清楚何時該在應用程序中使用它。何時使用鍵/值存儲(如Redis)而不是/在SQL數據庫的旁邊?

假設我正在構建一個基於Web的應用程序;我知道我將用於前端,後端,數據庫等的什麼堆棧。我會去哪些場景「哦,我們還需要Redis for X,Y或Z.」

我將不勝感激node.js示例以及非node.js示例。

+1

見http://stackoverflow.com/questions/4718832/redis-as-a-database/4719682#4719682 –

回答

70

我似乎無法弄清楚何時該在應用程序中使用它。

我建議您閱讀this教程,其中還包含用例。由於redis是面向內存的,所以對於頻繁更新的實時數據(例如會話存儲,狀態數據庫,統計數據,緩存)非常有用,它爲許多其他場景提供了多功能性。

但是,Redis不是經典關係數據庫的NoSQL替代品,因爲它不支持RDBMS世界的許多標準功能,如查詢數據可能會降低速度。替代文件就像MongoDB或CouchDB這樣的文檔數據庫,redis在補充特定功能方面非常出色,這些功能對高級數據結構的速度和支持非常方便。

+2

您鏈接的教程非常棒! –

+21

鏈接不再可用 –

+5

我使用該教程網站URL進行了快速Google搜索,並將其作爲熱門文章發佈 - http://www.slideshare.net/dvirsky/introduction-to-redis-version-2 – Paul

2

有一件事是Redis不是關係型數據庫。如果你將需要一個SQL「JOIN」,那麼你不會想使用Redis,也不想使用任何其他非關係數據庫。 Redis比大多數關係數據庫更快。如果你只是在做key:值對查詢,那麼你會想要使用Redis。

+0

因此,舉例來說,會是不錯的如何使用redis獲取關於用戶會話的信息,以便更快地訪問姓名,電子郵件,身份證等? –

+0

我會這樣想的。我認爲京都內閣會更快。 – EhevuTov

43

我覺得沒有什麼解釋瞭如何使用情況下比本文更好地爲Redis的: http://antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html

我敢打賭,你就會有一個啊哈!時刻。 ;)

從以前的閱讀器報價:

我讀過有關前Redis的和聽到的企業如何使用它,但從來沒有完全瞭解它的目的。在閱讀完本文之後,我可以說我現在瞭解Redis以及它如何有用。令人驚訝的是,聽到這麼多後,它只是一個相對簡單的文章。

+0

This文章非常有用,我有我想知道的 –

3
  • 我很想對實時項目中使用Redis的。我最近做了一個gps跟蹤系統 ,這個系統以前建在mysql上作爲 數據庫。

    優勢

    1. 每次跟蹤廣播數據我並不需要打開MySQL連接,並在其上存儲。我們可以將其保存在redis上,然後使用其他進程將 遷移到mysql。這將避免從多個跟蹤器到mysql的併發 連接。
    2. 我可以發佈所有這些gps數據和其他客戶端(javascript/android)可以實時訂閱。
    3. 我可以觸發實時警報
相關問題