什么情況下必須用Redis?
首先,你一定知道redis是單線程的NoSQL落地產(chǎn)品。既然是NOSQL肯定是可以做一些數(shù)據(jù)庫的事情,但在這個之外,它可以有高效進(jìn)行內(nèi)存緩存。明白點就是將數(shù)據(jù)存放于內(nèi)存中而不是每次都從數(shù)據(jù)庫的存儲文件上面搗騰。這樣速度就可以很快。
既然是基于內(nèi)存進(jìn)行緩存,那必然有一點不能放太大太多的數(shù)據(jù),所以第一點,我們一定放一些實用性較高,命中率較高的數(shù)據(jù)。這樣不至于占著茅坑不拉屎。所以,結(jié)合起來就是,需要查詢的存儲數(shù)據(jù)比較多,而每次幾乎只查這么多數(shù)據(jù)中的其中一小部分經(jīng)常使用的數(shù)據(jù)時,就用他了!
第二點,既然是單線程!那么你怕啥?你想到啥?高并發(fā)環(huán)境呀!對!針對一些高并發(fā)的數(shù)據(jù)排隊,任務(wù)執(zhí)行時候,可以通過Redis進(jìn)行分布式鎖的控制。
第三點,還有啥?太多了!可以做訂閱發(fā)布,服務(wù)注冊……
但是!我們公司和支付寶等大企業(yè)很多架構(gòu)師明確提出,中間件的就應(yīng)該做自己該做的事情!Redis其實開發(fā)的初衷就是緩存儲緩存!其他功能都是對它的擴(kuò)展和包裝!不建議使用!就把它當(dāng)成一個分布式緩存中間件來用吧!其他擴(kuò)展功能都有對應(yīng)的其他中間件。
不越俎代庖,不推諉避任!它就是一個緩存中間件。
感謝指導(dǎo),相互指正學(xué)習(xí)!