mysql - redis和mongodb怎么結(jié)合
問題描述
就是拿mongodb或mysql做存儲數(shù)據(jù)庫,然后redis做緩存。搭建好數(shù)據(jù)庫之后,怎么搭建redis,讓他們結(jié)合起來運用到項目中呢?mysql+redis可以的嗎?謝謝了
問題解答
回答1:題主問的太寬泛了,不好回答;簡單說,做緩存需要考慮幾點:1.緩存熱點數(shù)據(jù),針對自己的業(yè)務(wù)和數(shù)據(jù)結(jié)構(gòu)特點,適當?shù)剡x擇或組合redis的數(shù)據(jù)結(jié)構(gòu)進行存儲。2.緩存的更新和失效策略。想不到了,以后再補充。舉個例子:mongodb+redismongodb可以對數(shù)據(jù)進行聚合,后臺起cron,對數(shù)據(jù)每小時mapReduce一次,計算好的數(shù)據(jù)寫到redis中保存(也可以直接輸出到mongo collection中),前臺查詢redis 拿到聚合好的數(shù)據(jù)。
回答2:雖然我代表的是MongoDB,以下的回答看起來會很有安利自己產(chǎn)品的嫌疑,還是要提醒樓主注意一些問題。從問的問題來看,樓主對MongoDB或Redis都不熟,得出了用MongoDB+Redis來結(jié)合做項目的結(jié)論估計是看了哪篇文章的分享吧?不可否認,在某些很極端的場合在MongoDB前面再加一層Redis可能可以得到一定的收益,但是樓主是否考慮過自己的實際情況,是否真的到了需要在MongoDB前面加Redis的地步?要知道引入一項新技術(shù),無論是維護成本還是開發(fā)成本,以及對開發(fā)人員的要求都會成倍增加。比如原來可以直接從數(shù)據(jù)庫讀的東西,現(xiàn)在要考慮什么時候該從緩存讀取,相應的就要考慮緩存如何刷新,臟數(shù)據(jù)該怎么辦?這些問題說起來好像并不難,但不管什么問題放到高并發(fā)環(huán)境里就沒有簡單的問題。說句不中聽的,樓主如果有足夠的經(jīng)驗應付好上面這些問題,也就不會提現(xiàn)在這個問題了。幸運的是通常來說項目的并發(fā)還高不到需要兩個一起用的地步,因為MongoDB已經(jīng)有足夠強的應付高并發(fā)的能力和水平擴展的能力。所以拋開別人的意見不說,樓主自己應該想清楚這些問題:是什么驅(qū)使你把兩項技術(shù)放在一起使用,你想從中得到什么好處?更重要的,如果只用其中一項技術(shù),是不是也能解決問題?如果沒有足夠的證據(jù)說服自己,不妨實測一下用數(shù)據(jù)說話。
回答3:沒什么不可以的,reids安裝很簡單,看官方文檔就知道啦
相關(guān)文章:
1. docker-compose中volumes的問題2. vim - docker中新的ubuntu12.04鏡像,運行vi提示,找不到命名.3. python 多進程 或者 多線程下如何高效的同步數(shù)據(jù)?4. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個是怎么回事????5. docker-compose 為何找不到配置文件?6. php - 想要遠程推送emjio ios端怎么搞 需要怎么配合7. java - Hibernate查詢的數(shù)據(jù)是存放在session中嗎?8. 一個走錯路的23歲傻小子的提問9. angular.js - node.js中下載的angulae無法引入10. android - 添加multidex后在部分機型上產(chǎn)生anr的問題,該如何解決
