浮華編思論-番外技術-redis(1)

寫給自己的話,博客應該是記錄你一些心得椿胯,屬于你自己的東西,而不是當筆記本剃根,如同百度云盤保存那么多不看的資料哩盲,只要是你自己的哪怕簡單一點,有你自己的思想,那么就是一個很好的起步廉油。致浮華惠险。

形成自己的一套對于新技術的想法,怎么去熟悉新技術抒线,為未來提供知識儲備班巩。

目前業(yè)務需求引出業(yè)務需求,來當做自己學習新技術的一個方法嘶炭。

A.技術基本是springboot+mybatis+mysql來當做后端的模板抱慌。數(shù)據(jù)儲存在mysql中,每一次增刪改查都需要調(diào)用連接數(shù)據(jù)庫進行查詢眨猎,查詢有對應消耗抑进,單個數(shù)據(jù)每秒最多查詢不超過2000次。

場景是需要你進行某一個用戶消費記錄的顯示睡陪,用戶有多個并且需要顯示用戶名字寺渗。很簡單的sql就可以實現(xiàn)了查詢用戶消費表,然后用戶id關聯(lián)出用戶表宝穗,通過子查詢帶出對應用戶名字就可以實現(xiàn)户秤。一個sql就可以解決問題。組長要求sql里面要干凈逮矛,不要帶子查詢邏輯鸡号,sql就是一個單表的增刪改查,那么怎么處理须鼎?先寫一個查詢所有的用戶消費記錄鲸伴,然后獲取對應消費記錄中id,分別去查詢對應用戶id晋控。重復太多汞窗,如何去處理?最好哪里可以有緩存一下赡译,本地使用緩存仲吏,創(chuàng)建一個map,里面存放所有id對應名字蝌焚,然后對應id放到map中取出對應的名字來實現(xiàn)用戶姓名的顯示裹唆。效率分析,數(shù)據(jù)庫操作是只有二次只洒,但是問題來了许帐,對應壓力到了服務器,而且所有名字毕谴,其中大部分可能是不需要的成畦,隨著數(shù)據(jù)庫用戶變多距芬,你獲取所有然后保存到map中,之后再遍歷的是絕對不行的循帐。進一步框仔,引入redis。依然是查詢所有的用戶消費記錄表的信息拄养,然后對應用戶id先查詢redis中是否存在存和,如果不存在,查詢一次數(shù)據(jù)庫衷旅,并且對應用戶id跟用戶名稱放到redis緩存,設置過期時間纵朋。redis基于內(nèi)存柿顶,查詢數(shù)據(jù)快于mysql數(shù)據(jù)庫查詢。那么原先將調(diào)用數(shù)據(jù)庫1+N次操软,優(yōu)化到調(diào)用數(shù)據(jù)庫1+ Z (Z<=N)+ 調(diào)用redis (N-Z)次 嘁锯,對應最差就是每次都調(diào)用數(shù)據(jù)庫,但是如果redis緩存可以命中一些用戶數(shù)據(jù)聂薪,那么就是提高了效率家乘,而且redis比mysql抗揍,redis基于內(nèi)存藏澳,4w qps 也能抗下來仁锯,比mysql的2000 qps 要抗揍很多。所以本次技術引入使用是成功的翔悠。

B.初識redis业崖,那么怎么去學習redis。其實redis本身你也可以當成第三方來調(diào)用蓄愁,只是這個第三方反饋很及時双炕。

這里省略redis的安裝以及對應客戶端安裝。默認是有16個db (0-15),如果不設置默認是0.需要提醒到的是撮抓,不同db的數(shù)據(jù)不同步的妇斤,出現(xiàn)過客戶端跟管理端使用的是不同的redis的db,其中客戶端是1丹拯,管理端是2站超。然后客戶端存在用戶登錄失敗,就會記錄到失敗次數(shù)在對應db1咽笼,當用戶手機號對應失敗次數(shù)到達5顷编,就會直接返回用戶被禁止登錄,請等待解封之后處理剑刑。當然如果用戶失敗4次媳纬,然后第5次成功了双肤,就清空對應用戶失敗次數(shù)。同理在管理端钮惠,也實現(xiàn)用戶的登錄重置茅糜,一開始只是簡單跟客戶端一樣,查詢是否有對應key素挽,如果存在就清空蔑赘。結(jié)果問題出現(xiàn)對應redis數(shù)據(jù)庫不一樣,所以后面調(diào)整到對應共用一個數(shù)據(jù)庫预明,(網(wǎng)上查詢了一下缩赛,可以切換對應數(shù)據(jù)庫開支不大但是沒找到在線切換數(shù)據(jù)庫的方法,所以就采取了共用一個數(shù)據(jù)庫的方法撰糠。不過客戶端跟管理端的緩存都放在了一起酥馍,這里對應用戶key添加user跟manage拼接到key作為區(qū)分)。另外redis最顯著二個特點是高可用阅酪,高并發(fā)旨袒。其中高并發(fā)只是通過網(wǎng)上了解對應redis基于內(nèi)存,可以承受4wqps的訪問量术辐,遠比mysql的2000qps要來的高很多砚尽,而且redis訪問速度比mysql快。但是redis無法代替mysql辉词,因為redis是作為緩存的必孤,它并不能代替數(shù)據(jù)庫,redis的數(shù)據(jù)總會有清空的瑞躺。

C.redis的數(shù)據(jù)類型理解

String的get key value跟set key value屬于單個操作隧魄,群操為前面加上M 也就是Mset跟Mget,刪除為 del key隘蝎,數(shù)字遞增 incr key? 指定整數(shù)增加 incrby key increment购啄。數(shù)字遞減decr key 指定整數(shù)減少 decrby key decrement。尾部追加值? append key value嘱么。場景對應狮含,簡單的key-value應用在用戶登錄驗證部分,用戶每次登錄都會攜帶對應token曼振,如果用戶進行操作都要進行權限token驗證几迄,那么每次查詢都需要訪問數(shù)據(jù)庫,交互就很頻繁冰评,所以token放到redis中保存映胁。另外,原先是一些功能訪問有對應次數(shù)甲雅,為了防止被頻繁爬蟲解孙,就設置了對應使用次數(shù)的校驗坑填,每次使用功能一次就自增一次,并且設置過期時間弛姜,比如在10s內(nèi)該賬號訪問次數(shù)達到20次脐瑰,就進行禁止登錄,token清空處理廷臼,以此來實現(xiàn)對賬號的把控苍在,更進一步則是記載對應訪問的ip地址,在對應云服務器上進行設置黑名單荠商。對應解封寂恬,微信聯(lián)系客服進行解封。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末莱没,一起剝皮案震驚了整個濱河市掠剑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌郊愧,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件井佑,死亡現(xiàn)場離奇詭異属铁,居然都是意外死亡,警方通過查閱死者的電腦和手機躬翁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門焦蘑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人盒发,你說我怎么就攤上這事例嘱。” “怎么了宁舰?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵拼卵,是天一觀的道長。 經(jīng)常有香客問我蛮艰,道長腋腮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任壤蚜,我火速辦了婚禮即寡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘袜刷。我一直安慰自己聪富,他們只是感情好,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布著蟹。 她就那樣靜靜地躺著墩蔓,像睡著了一般梢莽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钢拧,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天蟹漓,我揣著相機與錄音,去河邊找鬼源内。 笑死葡粒,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的膜钓。 我是一名探鬼主播嗽交,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼颂斜!你這毒婦竟也來了夫壁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤沃疮,失蹤者是張志新(化名)和其女友劉穎盒让,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體司蔬,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡邑茄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了俊啼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肺缕。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖授帕,靈堂內(nèi)的尸體忽然破棺而出同木,到底是詐尸還是另有隱情,我是刑警寧澤跛十,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布彤路,位于F島的核電站,受9級特大地震影響芥映,放射性物質(zhì)發(fā)生泄漏斩萌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一屏轰、第九天 我趴在偏房一處隱蔽的房頂上張望颊郎。 院中可真熱鬧,春花似錦霎苗、人聲如沸姆吭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽内狸。三九已至检眯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間昆淡,已是汗流浹背锰瘸。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留昂灵,地道東北人避凝。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像眨补,于是被迫代替她去往敵國和親管削。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

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

  • 1 Redis介紹1.1 什么是NoSql為了解決高并發(fā)、高可擴展甘晤、高可用含潘、大數(shù)據(jù)存儲問題而產(chǎn)生的數(shù)據(jù)庫解決方...
    克魯?shù)吕?/span>閱讀 5,291評論 0 36
  • Redis 1. redis 簡介 redis 的數(shù)據(jù)是存在內(nèi)存中的,所以讀寫速度非诚呋椋快遏弱,因此 redis 被廣泛...
    xMustang閱讀 264評論 0 0
  • Nosql概述 在介紹Redis之前,首先先要介紹Nosql的概念酌伊。 互聯(lián)網(wǎng)架構(gòu)發(fā)展 在90年代的時候,計算機訪問...
    COKIDCC閱讀 689評論 0 1
  • 三年前缀踪,我是個徹徹底底的失敗者居砖,盡管現(xiàn)在也很墮落,但在那時我就連自己也覺得過得沒有任何意義驴娃。 我出生于...
    夕陽淺照閱讀 227評論 1 4
  • 用一段摘抄告別堅定而又任性的24歲 迎接風風火火的本命年生辰 沒有flag 于親人 于自己選擇的家人 于朋友 愿難...
    Harriet安安閱讀 153評論 0 1