mysql - redis和mongodb怎么結(jié)合
問(wèn)題描述
就是拿mongodb或mysql做存儲(chǔ)數(shù)據(jù)庫(kù),然后redis做緩存。搭建好數(shù)據(jù)庫(kù)之后,怎么搭建redis,讓他們結(jié)合起來(lái)運(yùn)用到項(xiàng)目中呢?mysql+redis可以的嗎?謝謝了
問(wèn)題解答
回答1:題主問(wèn)的太寬泛了,不好回答;簡(jiǎn)單說(shuō),做緩存需要考慮幾點(diǎn):1.緩存熱點(diǎn)數(shù)據(jù),針對(duì)自己的業(yè)務(wù)和數(shù)據(jù)結(jié)構(gòu)特點(diǎn),適當(dāng)?shù)剡x擇或組合redis的數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ)。2.緩存的更新和失效策略。想不到了,以后再補(bǔ)充。舉個(gè)例子:mongodb+redismongodb可以對(duì)數(shù)據(jù)進(jìn)行聚合,后臺(tái)起cron,對(duì)數(shù)據(jù)每小時(shí)mapReduce一次,計(jì)算好的數(shù)據(jù)寫到redis中保存(也可以直接輸出到mongo collection中),前臺(tái)查詢r(jià)edis 拿到聚合好的數(shù)據(jù)。
回答2:雖然我代表的是MongoDB,以下的回答看起來(lái)會(huì)很有安利自己產(chǎn)品的嫌疑,還是要提醒樓主注意一些問(wèn)題。從問(wèn)的問(wèn)題來(lái)看,樓主對(duì)MongoDB或Redis都不熟,得出了用MongoDB+Redis來(lái)結(jié)合做項(xiàng)目的結(jié)論估計(jì)是看了哪篇文章的分享吧?不可否認(rèn),在某些很極端的場(chǎng)合在MongoDB前面再加一層Redis可能可以得到一定的收益,但是樓主是否考慮過(guò)自己的實(shí)際情況,是否真的到了需要在MongoDB前面加Redis的地步?要知道引入一項(xiàng)新技術(shù),無(wú)論是維護(hù)成本還是開(kāi)發(fā)成本,以及對(duì)開(kāi)發(fā)人員的要求都會(huì)成倍增加。比如原來(lái)可以直接從數(shù)據(jù)庫(kù)讀的東西,現(xiàn)在要考慮什么時(shí)候該從緩存讀取,相應(yīng)的就要考慮緩存如何刷新,臟數(shù)據(jù)該怎么辦?這些問(wèn)題說(shuō)起來(lái)好像并不難,但不管什么問(wèn)題放到高并發(fā)環(huán)境里就沒(méi)有簡(jiǎn)單的問(wèn)題。說(shuō)句不中聽(tīng)的,樓主如果有足夠的經(jīng)驗(yàn)應(yīng)付好上面這些問(wèn)題,也就不會(huì)提現(xiàn)在這個(gè)問(wèn)題了。幸運(yùn)的是通常來(lái)說(shuō)項(xiàng)目的并發(fā)還高不到需要兩個(gè)一起用的地步,因?yàn)镸ongoDB已經(jīng)有足夠強(qiáng)的應(yīng)付高并發(fā)的能力和水平擴(kuò)展的能力。所以拋開(kāi)別人的意見(jiàn)不說(shuō),樓主自己應(yīng)該想清楚這些問(wèn)題:是什么驅(qū)使你把兩項(xiàng)技術(shù)放在一起使用,你想從中得到什么好處?更重要的,如果只用其中一項(xiàng)技術(shù),是不是也能解決問(wèn)題?如果沒(méi)有足夠的證據(jù)說(shuō)服自己,不妨實(shí)測(cè)一下用數(shù)據(jù)說(shuō)話。
回答3:沒(méi)什么不可以的,reids安裝很簡(jiǎn)單,看官方文檔就知道啦
相關(guān)文章:
1. python - 使用xlsxwriter寫入Excel, 只能寫入65536 無(wú)法繼續(xù)寫入.2. Python做掃描,發(fā)包速度實(shí)在是太慢了,有優(yōu)化的方案嗎?3. objective-c - ios百度地圖定位問(wèn)題4. java - Web開(kāi)發(fā) - POI導(dǎo)出帶有下拉框的Excel和解決下拉中數(shù)組過(guò)多而產(chǎn)生的異常5. java - 微信退款,公賬號(hào)向個(gè)人轉(zhuǎn)賬SSL驗(yàn)證失敗6. java - 安卓接入微信登錄,onCreate不會(huì)執(zhí)行7. python - flask如何創(chuàng)建中文列名的數(shù)據(jù)表8. javascript - 關(guān)于定時(shí)器 與 防止連續(xù)點(diǎn)擊 問(wèn)題9. 微信開(kāi)放平臺(tái) - Android調(diào)用微信分享不顯示10. python - mysql 如何設(shè)置通用型字段? 比如像mongodb那樣
