java - 有關(guān)redis等內(nèi)存數(shù)據(jù)庫 性能 和 必要性 的疑惑
問題描述
問題解答
回答1:1、多臺(tái)服務(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不存在這個(gè)問題。4、而且redis更可靠,redis的數(shù)據(jù)可以沉淀到硬盤,可以恢復(fù)的,那你的java內(nèi)存中的東西怎么恢復(fù)。5、很簡(jiǎn)單的一個(gè)問題就是,比如session你存在內(nèi)存中,也就是說如果你重新發(fā)布的話,所有的用戶都要重新登錄了,redis不會(huì)有這個(gè)問題的。6、再比如,如果你有N多G的熱數(shù)據(jù)需要存放在內(nèi)存中,以方便高效率的讀取,難道你告訴我用java的內(nèi)存嗎。
回答2:1.應(yīng)用場(chǎng)景不同導(dǎo)致redis可以有多種部署方式,本機(jī)還是跨機(jī)緩存是根據(jù)要解決的問題來看。比如業(yè)務(wù)程序是高cpu消耗的,部署的機(jī)器只需要一般的內(nèi)存配置即可。緩存的數(shù)據(jù)又比較多,需要單獨(dú)部署,甚至需要多臺(tái)組成集群。又比如系統(tǒng)比較大以后,需要各種模塊化,微服務(wù)化,每個(gè)服務(wù)都可以獨(dú)立演進(jìn),計(jì)算和數(shù)據(jù)分離也是比較常見的方式。另外不用擔(dān)心網(wǎng)絡(luò)io帶來的開銷,在沒有達(dá)到網(wǎng)絡(luò)帶寬瓶頸之前,網(wǎng)絡(luò)io都不是問題,延遲在ms級(jí)別,很劃算的。
2.redis作為緩存和kv數(shù)據(jù)庫還有持久化功能,斷電重啟后還可以恢復(fù)。當(dāng)然如果你只是需要緩存機(jī)制你可以選擇自己編程維護(hù)一套緩存,看你自己的需要,代價(jià)就是你要自己實(shí)現(xiàn)緩存的機(jī)制,自動(dòng)失效,緩存寫滿等等功能。
回答3:MongoDB也有純內(nèi)存存儲(chǔ)引擎,也可以了解和試用。
Love MongoDB! Have Fun!
我很好奇,Redis的問題提交到了MongoDB的版面上,我附帶告知MongoDB也有類似的純內(nèi)存存儲(chǔ)引擎,會(huì)有朋友表示不樂意和減1。
------------------------華麗的分割符--------------------------------
MongoDB中文社區(qū)線下活動(dòng)繽紛,請(qǐng)猛戳下方:
2017華山論劍|MongoDB中文社區(qū)
三月份杭州站在即!!! 感興趣的朋友火速報(bào)名!!!
相關(guān)文章:
1. docker鏡像push報(bào)錯(cuò)2. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題3. javascript - URL中有#號(hào)如何來獲取參數(shù)啊? nodejs4. docker不顯示端口映射呢?5. angular.js - angular內(nèi)容過長(zhǎng)展開收起效果6. docker容器呢SSH為什么連不通呢?7. 關(guān)于docker下的nginx壓力測(cè)試8. python - Django表單Form.save()問題9. python - 想要看Exception實(shí)現(xiàn)的源碼在什么位置?10. 新手求教python3如何把dict循環(huán)寫入csv文件(在進(jìn)行爬蟲時(shí)遇到的問題)?
