Redis是一個(gè)開(kāi)源的,基于內(nèi)存的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),可用作于數(shù)據(jù)庫(kù)、緩存、消息中間件。
從官方的解釋上,我們可以知道:Redis是基于內(nèi)存,支持多種數(shù)據(jù)結(jié)構(gòu)。
從經(jīng)驗(yàn)的角度上,我們可以知道:Redis常用作于緩存。
就我個(gè)人認(rèn)為:學(xué)習(xí)一種新技術(shù),先把握該技術(shù)整體的知識(shí)(思想),再扣細(xì)節(jié),這樣學(xué)習(xí)起來(lái)會(huì)比較輕松一些。所以我們先以“內(nèi)存”、“數(shù)據(jù)結(jié)構(gòu)”、“緩存”來(lái)對(duì)Redis入門(mén)。
為什么要用Redis?
從上面可知:Redis是基于內(nèi)存,常用作于緩存的一種技術(shù),并且Redis存儲(chǔ)的方式是以key-value
的形式。
我們可以發(fā)現(xiàn)這不就是Java的Map容器所擁有的特性嗎,那為什么還需要Redis呢?
Java實(shí)現(xiàn)的Map是本地緩存,如果有多臺(tái)實(shí)例(機(jī)器)的話(huà),每個(gè)實(shí)例都需要各自保存一份緩存,緩存不具有一致性
Redis實(shí)現(xiàn)的是分布式緩存,如果有多臺(tái)實(shí)例(機(jī)器)的話(huà),每個(gè)實(shí)例都共享一份緩存,緩存具有一致性。
Java實(shí)現(xiàn)的Map不是專(zhuān)業(yè)做緩存的,JVM內(nèi)存太大容易掛掉的。一般用做于容器來(lái)存儲(chǔ)臨時(shí)數(shù)據(jù),緩存的數(shù)據(jù)隨著JVM銷(xiāo)毀而結(jié)束。Map所存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),緩存過(guò)期機(jī)制等等是需要程序員自己手寫(xiě)的。
Redis是專(zhuān)業(yè)做緩存的,可以用幾十個(gè)G內(nèi)存來(lái)做緩存。Redis一般用作于緩存,可以將緩存數(shù)據(jù)保存在硬盤(pán)中,Redis重啟了后可以將其恢復(fù)。原生提供豐富的數(shù)據(jù)結(jié)構(gòu)、緩存過(guò)期機(jī)制等等簡(jiǎn)單好用的功能。
作者:Java3y
鏈接:https://www.zhihu.com/question/316430245/answer/2426979457
來(lái)源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。