為什么要用redis
之前零零散散的聽說過redis,一直以為是個放在本機的內(nèi)存型數(shù)據(jù)庫,想不通價值在哪兒,今天專門在zhihu搜了搜,跟想的挺不一樣。其實sql數(shù)據(jù)庫在規(guī)模公司應該也是放在專門服務器上的吧。多個服務器之間共享數(shù)據(jù)。
為什么要使用redis而不是把數(shù)據(jù)放在本地內(nèi)存中?
- DsyDemo的回答 - 知乎 > https://www.zhihu.com/question/316430245/answer/2421375658
其實,redis的作者在他自己的著作中就已經(jīng)說明了,他以前在一家小公司工作的時候,經(jīng)常會發(fā)現(xiàn),有些應用經(jīng)常有各種小量數(shù)據(jù)從服務器A傳給B再傳給C,這種情況下,其實不如A、B、C放在一個共享存儲 中存取。其實,作者的初衷是這樣設計redis的,它不適合共享大量數(shù)據(jù),目標是小量數(shù)據(jù)的共享。 隨著國內(nèi)的電商微服務 的興起,redis的能力被重新發(fā)現(xiàn)了,形成了一套電商微服務的實戰(zhàn)經(jīng)驗。但我們需要追本溯源,國內(nèi)的電商,為了保證存取效率,設置了大量緩存,這是因為傳統(tǒng)的數(shù)據(jù)庫很難滿足電商系統(tǒng)頻繁的查詢請求。所以,電商系統(tǒng)往往會引入緩存來處理,緩存基于內(nèi)存來存取,而且緩存的粒度可以重新設計,比起mysql之類的數(shù)據(jù)庫的頁緩存,從效率和命中上都高出不少。 如果使用本地緩存,則會引入一個新的難題,那就是很難保證一致性,也就是你很難在A、B、C三個服務器的本地緩存,修改某些字段時保證信息是一致的(尤其是需要強一致的場景)。所以,集中式緩存的思想就出現(xiàn)了,將緩存放在一起,再加上redis單線程執(zhí)行命令的特性,可以使得數(shù)據(jù)的一致性更容易維護。 當然,redis的功能已經(jīng)不僅限于通常的存儲概念了,更像是共享的概念,比如分布式鎖 、分布式流控等等,通過這些方式來保證程序運行的一致性。還有充當消息隊列、觀察訂閱者等使用模式。
為什么要使用redis而不是把數(shù)據(jù)放在本地內(nèi)存中? - 哪吒編程的回答 - 知乎
https://www.zhihu.com/question/316430245/answer/2922922692
一、同樣是緩存,用map不行嗎?
- Redis可以存儲幾十個G的數(shù)據(jù),Map行嗎?
- Redis的緩存可以進行本地持久化,Map行嗎?
- Redis可以作為分布式緩存,Map只能在同一個JVM中進行緩存;
- Redis支持每秒百萬級的并發(fā),Map行嗎?
- Redis有過期機制,Map有嗎?
- Redis有豐富的API,支持非常多的應用場景,Map行嗎?
作者:哪吒編程
鏈接:https://www.zhihu.com/question/316430245/answer/2922922692
來源:知乎
著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。

浙公網(wǎng)安備 33010602011771號