java - 有關(guān)redis等內(nèi)存數(shù)據(jù)庫 性能 和 必要性 的疑惑
問題描述
問題解答
回答1:1、多臺服務(wù)器可以是內(nèi)網(wǎng)啊。2、redis可以設(shè)置很大的內(nèi)存的,也就說量上有可能java是達(dá)不到的3、還有就是redis可保持?jǐn)?shù)據(jù)的持續(xù)性,比如你java如果重啟了或者你的java需要重新發(fā)布,那內(nèi)存中的數(shù)據(jù)豈不是不存在了,redis不存在這個問題。4、而且redis更可靠,redis的數(shù)據(jù)可以沉淀到硬盤,可以恢復(fù)的,那你的java內(nèi)存中的東西怎么恢復(fù)。5、很簡單的一個問題就是,比如session你存在內(nèi)存中,也就是說如果你重新發(fā)布的話,所有的用戶都要重新登錄了,redis不會有這個問題的。6、再比如,如果你有N多G的熱數(shù)據(jù)需要存放在內(nèi)存中,以方便高效率的讀取,難道你告訴我用java的內(nèi)存嗎。
回答2:1.應(yīng)用場景不同導(dǎo)致redis可以有多種部署方式,本機還是跨機緩存是根據(jù)要解決的問題來看。比如業(yè)務(wù)程序是高cpu消耗的,部署的機器只需要一般的內(nèi)存配置即可。緩存的數(shù)據(jù)又比較多,需要單獨部署,甚至需要多臺組成集群。又比如系統(tǒng)比較大以后,需要各種模塊化,微服務(wù)化,每個服務(wù)都可以獨立演進(jìn),計算和數(shù)據(jù)分離也是比較常見的方式。另外不用擔(dān)心網(wǎng)絡(luò)io帶來的開銷,在沒有達(dá)到網(wǎng)絡(luò)帶寬瓶頸之前,網(wǎng)絡(luò)io都不是問題,延遲在ms級別,很劃算的。
2.redis作為緩存和kv數(shù)據(jù)庫還有持久化功能,斷電重啟后還可以恢復(fù)。當(dāng)然如果你只是需要緩存機制你可以選擇自己編程維護一套緩存,看你自己的需要,代價就是你要自己實現(xiàn)緩存的機制,自動失效,緩存寫滿等等功能。
回答3:MongoDB也有純內(nèi)存存儲引擎,也可以了解和試用。
Love MongoDB! Have Fun!
我很好奇,Redis的問題提交到了MongoDB的版面上,我附帶告知MongoDB也有類似的純內(nèi)存存儲引擎,會有朋友表示不樂意和減1。
------------------------華麗的分割符--------------------------------
MongoDB中文社區(qū)線下活動繽紛,請猛戳下方:
2017華山論劍|MongoDB中文社區(qū)
三月份杭州站在即?。?! 感興趣的朋友火速報名?。?!
相關(guān)文章:
1. python - beautifulsoup獲取網(wǎng)頁內(nèi)容的問題2. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題3. docker鏡像push報錯4. docker - 如何修改運行中容器的配置5. docker-machine添加一個已有的docker主機問題6. Android "1"=="1" 到底是true還是false7. fragment - android webView 返回后怎么禁止重新渲染?8. angular.js - 在終端中用yeoman啟用angular-generator報錯,求解?9. java - 請問在main方法中寫成對象名.屬性()并賦值,與直接參參數(shù)賦值輸錯誤是什么原因?10. docker不顯示端口映射呢?
