Redis 使用場景

1.Counting(計數(shù))

可以預見的是荆姆,有很多同學認為把計數(shù)全部存在內(nèi)存中成本非常高浑厚,我在這里用個圖表來表達下我的觀點:

很多情況大家都會設想純使用內(nèi)存的方案會很有很高成本游添,但實際情況往往會有一些不一樣:

COST癞志,對于有一定吞吐需求的應用來說抖锥,肯定會單獨申請DB蜂莉、Cache資源,很多擔心DB寫入性能的同學還會主動將DB更新記入異步隊列欣硼,而這三塊的資源的利用率一般都不會太高题翰。資源算下來,你驚異的發(fā)現(xiàn):反而純內(nèi)存的方案會更精簡!

KISS原則豹障,這對于開發(fā)是非常友好的冯事,我只需要建立一套連接池,不用擔心數(shù)據(jù)一致性的維護血公,不用維護異步隊列昵仅。

Cache穿透風險,如果后端使用DB累魔,肯定不會提供很高的吞吐能力摔笤,cache宕機如果沒有妥善處理,那就悲劇了垦写。

大多數(shù)的起始存儲需求吕世,容量較小。

2.Reverse cache(反向cache)

面對微博常常出現(xiàn)的熱點梯投,如最近出現(xiàn)了較為火爆的短鏈命辖,短時間有數(shù)以萬計的人點擊、跳轉(zhuǎn)分蓖,而這里會常常涌現(xiàn)一些需求尔艇,比如我們向快速在跳轉(zhuǎn)時判定用戶等級,是否有一些賬號綁定么鹤,性別愛好什么的漓帚,已給其展示不同的內(nèi)容或者信息。

普通采用memcache+Mysql的解決方案午磁,當調(diào)用id合法的情況下尝抖,可支撐較大的吞吐。但當調(diào)用id不可控迅皇,有較多垃圾用戶調(diào)用時昧辽,由于memcache未有命中,會大量的穿透至Mysql服務器登颓,瞬間造成連接數(shù)瘋長搅荞,整體吞吐量降低,響應時間變慢框咙。

這里我們可以用redis記錄全量的用戶判定信息咕痛,如string key:uid int:type,做一次反向的cache喇嘱,當用戶在redis快速獲取自己等級等信息后茉贡,再去Mc+Mysql層去獲取全量信息。如圖:

當然這也不是最優(yōu)化的場景者铜,如用Redis做bloomfilter腔丧,可能更加省用內(nèi)存放椰。

3.Top 10 list

產(chǎn)品運營總會讓你展示最近、最熱愉粤、點擊率最高砾医、活躍度最高等等條件的top list。很多更新較頻繁的列表如果使用MC+MySQL維護的話緩存失效的可能性會比較大衣厘,鑒于占用內(nèi)存較小的情況如蚜,使用Redis做存儲也是相當不錯的。

4.Last Index

用戶最近訪問記錄也是redis list的很好應用場景影暴,lpush lpop自動過期老的登陸記錄错邦,對于開發(fā)來說還是非常友好的。

5.Relation List/Message Queue

這里把兩個功能放在最后坤检,因為這兩個功能在現(xiàn)實問題當中遇到了一些困難,但在一定階段也確實解決了我們很多的問題期吓,故在這里只做說明早歇。

Message Queue就是通過list的lpop及l(fā)push接口進行隊列的寫入和消費,由于本身性能較好也能解決大部分問題讨勤。

6.Fast transaction with Lua

Redis 的Lua的功能擴展實際給Redis帶來了更多的應用場景箭跳,你可以編寫若干command組合作為一個小型的非阻塞事務或者更新邏輯,如:在收到message推送時潭千,同時1.給自己的增加一個未讀的對話 2.給自己的私信增加一個未讀消息 3.最后給發(fā)送人回執(zhí)一個完成推送消息谱姓,這一層邏輯完全可以在Redis Server端實現(xiàn)。

但是刨晴,需要注意的是Redis會將lua script的全部內(nèi)容記錄在aof和傳送給slave屉来,這也將是對磁盤,網(wǎng)卡一個不小的開銷狈癞。

7.Instead of Memcache

很多測試和應用均已證明茄靠,

在性能方面Redis并沒有落后memcache多少,而單線程的模型給Redis反而帶來了很強的擴展性蝶桶。

在很多場景下慨绳,Redis對同一份數(shù)據(jù)的內(nèi)存開銷是小于memcache的slab分配的。

Redis提供的數(shù)據(jù)同步功能真竖,其實是對cache的一個強有力功能擴展脐雪。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市恢共,隨后出現(xiàn)的幾起案子战秋,更是在濱河造成了極大的恐慌,老刑警劉巖讨韭,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件获询,死亡現(xiàn)場離奇詭異涨岁,居然都是意外死亡,警方通過查閱死者的電腦和手機吉嚣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門梢薪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人尝哆,你說我怎么就攤上這事秉撇。” “怎么了秋泄?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵琐馆,是天一觀的道長。 經(jīng)常有香客問我恒序,道長瘦麸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任歧胁,我火速辦了婚禮滋饲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喊巍。我一直安慰自己屠缭,他們只是感情好,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布崭参。 她就那樣靜靜地躺著呵曹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪何暮。 梳的紋絲不亂的頭發(fā)上奄喂,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機與錄音海洼,去河邊找鬼砍聊。 笑死,一個胖子當著我的面吹牛贰军,可吹牛的內(nèi)容都是我干的玻蝌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼词疼,長吁一口氣:“原來是場噩夢啊……” “哼俯树!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贰盗,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤许饿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后舵盈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陋率,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡球化,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瓦糟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筒愚。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖菩浙,靈堂內(nèi)的尸體忽然破棺而出巢掺,到底是詐尸還是另有隱情,我是刑警寧澤劲蜻,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布陆淀,位于F島的核電站,受9級特大地震影響先嬉,放射性物質(zhì)發(fā)生泄漏轧苫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一疫蔓、第九天 我趴在偏房一處隱蔽的房頂上張望含懊。 院中可真熱鬧,春花似錦鳄袍、人聲如沸绢要。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至樱哼,卻和暖如春哀九,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搅幅。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工阅束, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人茄唐。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓息裸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親沪编。 傳聞我的和親對象是個殘疾皇子呼盆,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

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