2014-01-21 34 views
0

我正在建設一個新聞網站。目前,我使用mySQL作爲主數據存儲和redis來維護用戶主頁提要的文章列表。當用戶點擊主頁上的文章時,我連接到mysql以獲取文章,評論和相關內容的主要內容。應該將所有數據存儲在redis中嗎?

如果我將所有文章數據存儲在redis中,是否是最佳做法?我的意思是,不用連接到mysql來獲取文章的全部內容,我將redis文章的主要內容存儲在redis中,這樣可以提高性能。

+0

你的意思是使用Redis作爲你的* only *數據存儲或者作爲你的* primary *並且讓MySQL成爲* secondary *? – Agis

+0

MySQL是我的主要數據存儲。我使用Redis作爲查看器獨立數據存儲來提高性能。 – ipkiss

回答

1

這是基於意見的,所以這是我的意見。 Redis已準備好用作緩存。您需要決定緩存什麼,以及緩存是否真的有必要。這取決於你的應用程序的規模。如果文章變化很大,並且您沒有龐大的用戶/訪問者羣體,我不認爲Redis是必要的。請記住,您無法在那裏搜索相關內容。您無法在Redis中使用SELECT articles WHERE author='foo'

另一方面,如果由於許多用戶而導致數據庫負載大幅增加,則可以預先呈現所有文章的HTML並將其放入Redis中。這將節省數據庫和Web服務器的一些負擔。但只有當你已經知道你想要展示哪些文章。

1

這取決於redis在你的情況下應該承擔的角色。

如果它用作緩存,則可以嘗試在redis中存儲更多數據。只要開發開銷很小,並且過程不會引入新的錯誤來源。

如果您希望redis成爲您的數據的主要來源,那麼您的情況聽起來不像,您還可以決定將所有內容從MySQL中移走。由於數據量較少且「很少」變化,因此可能值得一試。但請記住備份數據庫並在更改後同步到HDD。

相關問題