Guava晃洒、Memcached 和 Redis慨灭,我們?yōu)槭裁催x擇了 Redis?

簡單來說球及,Redis 就是一個數(shù)據(jù)庫氧骤。
不同于傳統(tǒng)數(shù)據(jù)庫將數(shù)據(jù)保存在磁盤中,Redis 將數(shù)據(jù)存在內(nèi)存中吃引,所以它也經(jīng)常被叫做內(nèi)存數(shù)據(jù)庫语淘;同時 Redis 存儲也被叫做 NoSQL 數(shù)據(jù)庫、非關系型數(shù)據(jù)庫际歼。
因為 Redis 將數(shù)據(jù)保存在內(nèi)存中惶翻,所以讀寫速度會非常快鹅心,因此 Redis 被廣泛應用做緩存或其他需要高速讀寫的場景吕粗。

為什么要使用 Redis

軟件架構中引入 Redis ,是因為它“又快又強”旭愧。

1. 快颅筋,是指性能高

計算機硬件的速度由低到高:硬盤-網(wǎng)絡-內(nèi)存-CPU;

在傳統(tǒng)的數(shù)據(jù)庫中输枯,如果第一次訪問數(shù)據(jù)庫中的某條數(shù)據(jù)议泵,通常是比較慢的,因為數(shù)據(jù)庫需要從硬盤上讀取數(shù)據(jù)桃熄;而 Redis 中的數(shù)據(jù)保存在了內(nèi)存中先口,所以速度會比從磁盤中讀取數(shù)據(jù)快得多。

所以我們經(jīng)常把 Redis 當做緩存:第一次從數(shù)據(jù)庫中讀取數(shù)據(jù),并放入 Redis 碉京,后面直接訪問 Redis 就可以了厢汹。

2. 強,是指高并發(fā)場景下的穩(wěn)定性(高可用)

在高并發(fā)的場景下谐宙,Redis 能夠承受的訪問極限烫葬,是遠遠大于數(shù)據(jù)庫的,所以我們可以考慮把需要高并發(fā)讀的數(shù)據(jù)放到 Redis 中凡蜻;

比如秒殺功能搭综,短短幾秒內(nèi)可能就會有數(shù)十萬筆的訪問,如果直接操作數(shù)據(jù)庫的話划栓,數(shù)據(jù)庫可能瞬間就被擊垮了设凹。

哪些場景不適合放入 Redis

當然,也不是說所有的場景茅姜、所有的數(shù)據(jù)都適合放進 Redis 中,通常我們需要考慮以下幾點:

  • 數(shù)據(jù)查詢的命中率高么月匣?如果緩存的命中率很低钻洒,沒有必要放入到 Redis 中;
  • 數(shù)據(jù)讀寫操作多么锄开?如果數(shù)據(jù)會被頻繁寫入(增素标、改、刪)萍悴,設置寫操作次數(shù)大于讀操作次數(shù)头遭,那么也沒有必要使用 Redis ;
  • 業(yè)務數(shù)據(jù)大小如何癣诱?如果要儲存文件计维,那完全沒有必要放入到 Redis 中。

本地緩存 or Redis

緩存分為本地緩存和分布式緩存:

1. 本地緩存

比如 Guava撕予、Ehcache鲫惶,甚至把緩存保存到 Map 中,這些都是本地緩存实抡;

本地緩存的特點是輕量欠母、實現(xiàn)簡單,生命周期隨著 JVM 的銷毀而結束吆寨;但是如果程序存在多個實例(程序部署多套)赏淌,每個實例中的緩存不具有一致性。

2. 分布式緩存

Redis 被稱作分布式緩存啄清,如果程序存在多個實例六水,各個實例可以共用 Redis 中的緩存數(shù)據(jù),但同時因為引入了 Redis ,那么需要保證 Redis 的高可用缩擂,架構上更為復雜鼠冕。

Redis or Memcached

Memcached 也經(jīng)常被用作緩存,也是分布式緩存的一種胯盯,那么它和 Redis 有什么區(qū)別呢懈费?

  • Redis 支持更豐富的數(shù)據(jù)類型,Memcache 支持簡單的數(shù)據(jù)類型String博脑;

  • Redis 支持數(shù)據(jù)的持久化憎乙,可以將內(nèi)存中的數(shù)據(jù)保存到硬盤中,重啟之后把數(shù)據(jù)加載到內(nèi)存中叉趣,而 Memcache 只是把數(shù)據(jù)保存在內(nèi)存中 泞边;

  • Redis 目前支持集群模式,而 Memcached 沒有原生的集群模式疗杉,需要使用方自己實現(xiàn)阵谚;

  • Redis 使用單線程的多路 IO 復用模型(Redis 在最新的 6.0 版本中開始支持多線程);Memcached 使用的是多非阻塞IO復用的網(wǎng)絡模型烟具。

Redis 和 Memcache 的區(qū)別

最后再強調(diào)一點梢什,是否要引入 Redis?使用本地緩存還是分布式緩存朝聋?都需從項目的實際情況出發(fā)嗡午;Redis 豐富的數(shù)據(jù)類型和對持久化的支持,會更加適合我們的項目冀痕。

會點代碼的大叔 | 文【原創(chuàng)】


敬請關注會點代碼的大叔
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末荔睹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子言蛇,更是在濱河造成了極大的恐慌僻他,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腊尚,死亡現(xiàn)場離奇詭異中姜,居然都是意外死亡,警方通過查閱死者的電腦和手機跟伏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門丢胚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人受扳,你說我怎么就攤上這事携龟。” “怎么了勘高?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵峡蟋,是天一觀的道長坟桅。 經(jīng)常有香客問我,道長蕊蝗,這世上最難降的妖魔是什么仅乓? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮蓬戚,結果婚禮上夸楣,老公的妹妹穿的比我還像新娘。我一直安慰自己子漩,他們只是感情好豫喧,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著幢泼,像睡著了一般紧显。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缕棵,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天孵班,我揣著相機與錄音,去河邊找鬼招驴。 笑死篙程,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的忽匈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼矿辽,長吁一口氣:“原來是場噩夢啊……” “哼丹允!你這毒婦竟也來了?” 一聲冷哼從身側響起袋倔,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤雕蔽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后宾娜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體批狐,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年前塔,在試婚紗的時候發(fā)現(xiàn)自己被綠了嚣艇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡华弓,死狀恐怖食零,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寂屏,我是刑警寧澤贰谣,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布娜搂,位于F島的核電站,受9級特大地震影響吱抚,放射性物質(zhì)發(fā)生泄漏百宇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一秘豹、第九天 我趴在偏房一處隱蔽的房頂上張望携御。 院中可真熱鬧,春花似錦憋肖、人聲如沸因痛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸵膏。三九已至,卻和暖如春怎炊,著一層夾襖步出監(jiān)牢的瞬間谭企,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工评肆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留债查,地道東北人。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓瓜挽,卻偏偏與公主長得像盹廷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子久橙,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1俄占、memcache的概念? Memcache是一個高性能的分布式的內(nèi)存對象緩存系統(tǒng)淆衷,通過在內(nèi)存里維護一個統(tǒng)一的巨...
    桖辶殤閱讀 2,239評論 2 12
  • Redis的作者Salvatore Sanfilippo曾經(jīng)對這兩種基于內(nèi)存的數(shù)據(jù)存儲系統(tǒng)進行過比較: Redis...
    碼農(nóng)GG閱讀 330評論 0 0
  • 緩存是分布式系統(tǒng)中的重要組件缸榄,主要解決高并發(fā),大數(shù)據(jù)場景下祝拯,熱點數(shù)據(jù)訪問的性能問題甚带。提供高性能的數(shù)據(jù)快速訪問。 一...
    Java架構師Carl閱讀 1,214評論 0 23
  • 林允隨手帶上門后的片刻佳头,傻眼了鹰贵。 鑰匙,手機康嘉,錢包全都鎖在了房間砾莱。怎么辦?怎么這么不小心呢凄鼻?林允在過道上來回地走著...
    簡單紫閱讀 294評論 0 0
  • 我想給你打一個電話 在不眠的夜里 聽那頭傳來陣陣鈴音 觸手可及的地方 看屏幕歇了又明 許是早已安睡 又或不再記得 ...
    秋水長天不一色閱讀 297評論 0 3