成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 從一個小需求感受Redis的獨(dú)特魅力(需求設(shè)計)

從一個小需求感受Redis的獨(dú)特魅力(需求設(shè)計)

熱門標(biāo)簽:一個地圖標(biāo)注多少錢 南京手機(jī)外呼系統(tǒng)廠家 地圖標(biāo)注工廠入駐 四川穩(wěn)定外呼系統(tǒng)軟件 b2b外呼系統(tǒng) 臺灣電銷 高碑店市地圖標(biāo)注app 廊坊外呼系統(tǒng)在哪買 400電話辦理的口碑

分享一個簡單的小需求應(yīng)該怎么設(shè)計實(shí)現(xiàn)以及有關(guān)Redis的使用

Redis在實(shí)際應(yīng)用中使用的非常廣泛,本篇文章就從一個簡單的需求說起,為你講述一個需求是如何從頭到尾開始做的,又是如何一步步完善的。之前寫過一篇《如何實(shí)現(xiàn)頁面廣告隨時上下線、過期自動下線及到時自動上線》,也涉及到了Redis在項目中的實(shí)際應(yīng)用,有興趣的可以看一下。

需求

設(shè)定,現(xiàn)在我們有一個APP,產(chǎn)品新提出一個叫“程序員樹洞”的功能,具體功能就不說了,其中這個功能有一點(diǎn)需要做的是在使用該功能時,如果是首次進(jìn)入會展示一個協(xié)議頁面,用戶需要勾選后點(diǎn)確定才能進(jìn)入功能,此后再進(jìn)該功能,不再顯示協(xié)議頁直接進(jìn)入該功能。如下圖所示,

原型圖

需求分析

需求就是這么的簡單,我們來分析一下。

1、用戶點(diǎn)擊該功能時前端需要知道該給用戶顯示哪個頁面,這一步需要請求后端接口,后臺告訴前端這個用戶有沒有同意過協(xié)議。

2、用戶勾選協(xié)議點(diǎn)確定,后端需要記錄這步操作(記錄用戶已經(jīng)同意協(xié)議),這一步需在點(diǎn)確定時前端請求后端接口。

概要設(shè)計

前面需求分析里說了,后端需要告訴前端用戶有沒有統(tǒng)一過協(xié)議,所以后端需要把這個信息記錄下來,最好是記錄到數(shù)據(jù)庫保存,那就需要一張表來記錄同意過協(xié)議的用戶。表結(jié)構(gòu)大致是:id,客戶號,插入時間。

詳細(xì)設(shè)計

1、記錄客戶是否已同意過協(xié)議并提供查詢功能(查詢是否同意過協(xié)議)

2、沒有同意過的和同意過的用戶信息怎么存儲

3、如何高效的查詢是否同意過

4、怎么保證高并發(fā)下服務(wù)的可用性,數(shù)據(jù)庫的可用性

功能實(shí)現(xiàn)

后端提供兩個接口,

1、hasAgree(),查詢該用戶是否已同意協(xié)議

2、recordAgree(),記錄用戶已同意協(xié)議

第一版 Just DB

很容易嘛!不就是CRUD嗎,小意思。用戶進(jìn)來先查數(shù)據(jù)庫有沒有記錄,沒有返回用戶沒有同意過協(xié)議,前端給用戶展示協(xié)議頁,否則展示功能頁;用戶點(diǎn)同意后,后臺記錄用戶已點(diǎn)了同意協(xié)議,記錄到庫。一個查詢一個插入,5分鐘搞定嘛。

直接甩代碼

第一版代碼如上,我覺得剛?cè)腴T的程序員都能夠?qū)懗鰜怼H绻脩袅坎淮?,該功能的點(diǎn)擊量不大的話,這么做還是勉強(qiáng)說得過去。為什么說勉強(qiáng)說得過去,因為存在隱患,你看啊如果每次點(diǎn)擊都會去查庫,假如有人惡意攻擊,仿造高并發(fā),瞬時大量請求過來都去查庫,很可能數(shù)據(jù)庫頂不住就掛了?;蛘呔退銛?shù)據(jù)庫沒掛,每次查庫也都是浪費(fèi)啊。所以這是個隱患,或者潛在的危險,那么第二版我們就去解決這個問題。

第二版 引入Redis緩存

考慮到每次查庫很浪費(fèi),那我們使用緩存好不好? 進(jìn)來先查緩存有沒有對應(yīng)的數(shù)據(jù),緩存里有就直接返回,沒有則查庫,庫里有就存緩存。這樣redis就分擔(dān)了一部分?jǐn)?shù)據(jù)庫的壓力。

 

代碼呈上

這一版好一點(diǎn)了,部分請求分?jǐn)偟絩edis了,減輕了數(shù)據(jù)庫的壓力。

第三版 解決緩存穿透

隨著客戶量的增加,點(diǎn)擊這個功能的次數(shù)、頻率越來越高,假如有人頻繁點(diǎn)擊該功能,彈出協(xié)議后,退出,再點(diǎn),再退出…就是不點(diǎn)確定

 

這樣會有啥問題?

這樣的話后臺緩存中沒有,數(shù)據(jù)庫中也沒有,每次都會走數(shù)據(jù)庫,繞過了緩存,直接都走數(shù)據(jù)庫,這類請求量多了也是個問題,這就是緩存穿透。所以第三版,我們來解決緩存穿透的問題。

 

解決緩存穿透:因為是數(shù)據(jù)庫和緩存都沒有,我們可以讓數(shù)據(jù)庫沒有的也存到redis。需要改變redis的數(shù)據(jù)類型,由set改為map,目的是記錄狀態(tài)值。

可以看到,我們的這個key-field-value沒有設(shè)置過期時間,因為可以認(rèn)為這個key是一個熱點(diǎn)key,對于熱點(diǎn)key我們的處理方式是,永久有效或過期時間盡量長一點(diǎn)。

第四版 緩存預(yù)熱防止緩存擊穿

另一個關(guān)于緩存的問題,那就是緩存擊穿。

何為緩存擊穿?假如該功能在前期宣傳力度比較大,或預(yù)計該功能上線后點(diǎn)擊量比較大的話,那么在功能上線后很可能就會一瞬間大量用戶來點(diǎn)擊這個功能,因為我們前面的邏輯是首次進(jìn)入該功能的用戶展示協(xié)議頁,我們的后臺處理雖然加了redis緩存,但是新上的功能所有用戶都沒有點(diǎn)過,那么redis里就沒有緩存,是不是所有用戶的請求都落到數(shù)據(jù)庫了?一旦瞬間流量非常大,數(shù)據(jù)庫安全性就存在隱患,有被搞垮的可能。

 

這個問題就是可以理解為緩存擊穿。(實(shí)際的緩存擊穿是某個key在緩存里不存在或是失效后,某一瞬間很多請求都來訪問這個key,都判定為redis里沒有這個key,就都去查庫。)

所以怎么解決呢?我們可以在該功能上線前,提前將需要做緩存的數(shù)據(jù)放入redis,即緩存預(yù)熱。

如何預(yù)熱?將所有用戶的信息都放到redis.舉個栗子(也許不是最佳的),我們使用Redis的hash數(shù)據(jù)結(jié)構(gòu),key-field-value。key我們可以固定一個字符串如coderTreeHole_Agreement_Check,field我們可以用客戶號(唯一),value是個標(biāo)志位,用0代表沒同意過協(xié)議,1代表同意過。一般在電商大促前都會對熱點(diǎn)key進(jìn)行預(yù)熱,不然真的扛不住。

 

and,用戶量很大的時候redis里的coderTreeHole_Agreement_Check這個key是不是很大?在redis集群部署模式下,這個key是不是都放在一個節(jié)點(diǎn)上?why?

redis3.0上加入了cluster模式,實(shí)現(xiàn)的redis的分布式存儲,也就是說每臺redis節(jié)點(diǎn)上存儲不同的內(nèi)容。在redis的每一個節(jié)點(diǎn)上,都有這么兩個東西,一個是插槽(slot),它的的取值范圍是:0-16383。還有一個就是cluster,可以理解為是一個集群管理的插件。當(dāng)我們的存取的key到達(dá)的時候,redis會根據(jù)crc16的算法得出一個結(jié)果,然后把結(jié)果對16384求余數(shù),這樣每個key都會對應(yīng)一個編號在0-16383之間的哈希槽,通過這個值,去找到對應(yīng)的插槽所對應(yīng)的節(jié)點(diǎn),然后直接自動跳轉(zhuǎn)到這個對應(yīng)的節(jié)點(diǎn)上進(jìn)行存取操作。

看了上面這段話,明白了吧。那對于這個大key而且是熱點(diǎn)key的請求,是不是都落到某一個redis節(jié)點(diǎn)上了?大key會帶來很多問題,篇幅原因以后再來細(xì)說,跑題了。。。

針對這個需求,你還有什么方法防治緩存擊穿?

第五版 消息隊列削峰填谷

可以看到我們上面的設(shè)計其實(shí)都是實(shí)時對數(shù)據(jù)庫進(jìn)行操作的。

例如,當(dāng)用戶點(diǎn)了同意,前端就調(diào)后臺的recordAgree方法將該記錄記錄到數(shù)據(jù)庫,即這條記錄是立馬插入到數(shù)據(jù)庫的。

如果剛上線這個功能,大量用戶同時點(diǎn)這個功能,并發(fā)量大的話,請求走到后臺,那么寫庫的操作就非常多,數(shù)據(jù)庫連接數(shù)突然激增,數(shù)據(jù)庫會頂不住吧。

所以為避免流量集中落到數(shù)據(jù)庫,此時我們可以使用消息隊列MQ。將插入操作的請求發(fā)往消息隊列,使插入操作以一定的速率到數(shù)據(jù)庫執(zhí)行,使得對數(shù)據(jù)庫的請求數(shù)盡量平滑,消息發(fā)給消息隊列立即返回給前端成功,不用等待插庫完成,用MQ實(shí)現(xiàn)了異步解耦,削峰填谷。

到這你是不是忍不住說設(shè)計的真贊~~

另外MQ的使用注意的點(diǎn)還是非常多的,如:消息隊列的消息重復(fù)消費(fèi)問題,順序問題,事務(wù)消息等。

總結(jié)

對于這個需求設(shè)計到哪種程度取決于你的用戶量和并發(fā)量,如果是像雙十一那樣,肯定是要用消息隊列的,那一般小的例如,用戶量1千萬,日活10萬,請求最集中的也就是中午9-12點(diǎn),下午13-17點(diǎn)吧,差不多8個小時,平均一個小時1.25萬,用戶都來點(diǎn)這個功能的話,每分鐘208,每秒3.5,算不上高并發(fā),數(shù)據(jù)庫完全扛得住。

總結(jié)一下,這個需求我們用到的知識點(diǎn)(敲黑板),redis數(shù)據(jù)緩存,redis緩存穿透,緩存擊穿,熱點(diǎn)key問題,redis大key問題(沒具體講),消息隊列異步解耦等。

畫圖碼字不易,如果覺得我寫的還可以,記得點(diǎn)贊鼓勵一下哦,如果覺得有問題歡迎指正。

好了,就給大家介紹這么多。

您可能感興趣的文章:
  • CentOS系統(tǒng)下Redis安裝和自啟動配置的步驟
  • Python使用Redis實(shí)現(xiàn)作業(yè)調(diào)度系統(tǒng)(超簡單)
  • Nginx配置srcache_nginx模塊搭配Redis建立緩存系統(tǒng)
  • CentOS Linux系統(tǒng)下安裝Redis過程和配置參數(shù)說明
  • 讓Redis在你的系統(tǒng)中發(fā)揮更大作用的幾點(diǎn)建議

標(biāo)簽:甘南 伊春 拉薩 南寧 定州 畢節(jié) 河源 泰州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《從一個小需求感受Redis的獨(dú)特魅力(需求設(shè)計)》,本文關(guān)鍵詞  從,一個,小,需求,感受,Redis,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《從一個小需求感受Redis的獨(dú)特魅力(需求設(shè)計)》相關(guān)的同類信息!
  • 本頁收集關(guān)于從一個小需求感受Redis的獨(dú)特魅力(需求設(shè)計)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    av网站在线免费看推荐| 亚洲综合资源| 97碰碰碰免费色视频| 在线观看欧美激情| 免费在线观看a视频| 蜜臀久久久久久999| 国产99久久久久久免费看农村| 亚洲精品一区二区三区在线播放| 欧美全黄视频| 在线播放国产精品二区一二区四区| 久久久久久久久一区二区| 热re66久久精品国产99热| 18禁裸乳无遮挡啪啪无码免费| 欧美一级片网址| 久草国产在线观看| 色综合咪咪久久| 欧美a级成人淫片免费看| 丰乳肥臀在线| 国产91av视频在线观看| 一区二区精品免费视频| 久久精品一区蜜桃臀影院| 少妇无码av无码专区在线观看| 午夜在线观看视频18| 欧美成人禁片在线观看网址| 精品国产伦一区二区三区观看说明| 深夜视频一区二区| 亚洲欧美国产精品专区久久| 51自拍视频在线观看| 国产在线精彩视频| 久久久久久91精品色婷婷| 大杳蕉精品视频在线观看| 国产999精品在线观看| 亚洲一区二区三区四区精品| 91高清视频在线免费观看| 男人免费av| 日韩精品一区二区三区swag| 大桥未久一区二区| 美乳中文字幕| 天堂一区二区在线免费观看| 成人免费网址在线| 在线中文字幕不卡| 国产女主播av| 欧美电影网站| 国产精品亚洲一区二区三区| 男人天堂网在线观看| 久久不见久久见免费视频7| 国产精品久久久久久免费免熟| 欧美成人影院在线播放| 黄色精品网站| 亚洲福利一区二区| 强伦人妻一区二区三区| 国产性生活免费视频| 久99久精品视频免费观看| 黄色一级免费大片| 风韵丰满熟妇啪啪区老熟熟女| 成人免费网站在线| 亚洲成人黄色网址| 久久精品国内一区二区三区| 激情综合电影网| 精品一区二区三区中文字幕在线| 公交车上扒开嫩j挺进去| 欧美激情在线视频二区| 欧美变态tickle挠乳网站| 国自产拍在线网站网址视频| 91精品国产91久久久久久吃药| 免费在线午夜视频| 久热在线视频精品网站| 欧美xxxxb| 天天草天天操| 精品99视频| 久久精品国产亚洲av高清色欲| 日本激情综合网| 国产成人av电影免费在线观看| 亚洲欧美自偷自拍| 综合天堂久久久久久久| 日本不卡免费新一二三区| 4hu最新网址| 欧美综合在线第二页| 99久久婷婷国产综合| 日韩激情视频网站| 日韩一区二区三区在线免费观看| 久久精品国产免费观看| 久久国产视频精品| 狠狠爱www人成狠狠爱综合网| 国产哺乳奶水91在线播放| 日韩一区二区不卡| 一区二区三区日韩| 亚洲高清资源在线观看| 成人国产精品免费网站| 欧美最猛黑人xxxx| 国产91色在线|免| 亚洲精品免费一区二区三区| 香蕉视频官网在线观看日本一区二区| 精品视频在线一区二区在线| 午夜激情综合网| 亚洲一区二区三区四区五区xx| 亚洲精品在线观看免费| 国产精品xxxxx| 国产精品免费区二区三区观看| 欧美亚洲一区在线| 亚洲人成在线观看| 99久久久无码国产精品性| 亚洲美女少妇无套啪啪呻吟| 亚洲精品tv久久久久久久久| 国产精品区一区二区三| 国产日本在线播放| 高清欧美一区二区三区| 免费福利视频一区| www.成人精品| 亚洲精品视频一区二区| 成年网站免费| 免费观看黄色的网站| 久久综合香蕉| 婷婷精品视频| 欧美极品jizzhd欧美| 男女猛烈激情xx00免费视频| 秋霞网一区二区三区| 男人资源网站| jizzjizzxxxx| 久久精品日韩| 思思99re6国产在线播放| 欧美极品少妇无套实战| 欧美精品国产| 亚洲人在线观看视频| 日韩性xxxx爱| 色的视频在线观看免费播放| 亚洲xxxx2d动漫1| 凹凸日日摸日日碰夜夜爽1| 国产精品视频最多的网站| 99热在线只有精品| 日韩一区二区三区四区视频| 欧美日韩电影一区二区三区| 毛片在线播放视频| 精品一区二区三区免费| 福利片在线观看| 成人av.网址在线网站| 青青操在线观看视频| 青春草在线视频| 在线中文字幕一区| 精品熟女一区二区三区| 欧美国产激情视频| 日韩电影在线播放| 亚洲第一在线综合在线| 亚洲精品乱码久久久久久蜜桃图片| 免费黄色在线看| 中文在线永久免费观看| 福利网在线观看| 欧洲生活片亚洲生活在线观看| 日韩美女视频免费在线观看| 免费无码一区二区三区| 国产综合色在线观看| 开心婷婷激情五月| 热门国产精品亚洲第一区在线| 在线看片成人| 亚洲成人77777| 国产1区在线观看| 视频在线观看99| 国产综合av| 三级久久三级久久| 黄色精品一区| 欧美人在线视频| 欧美激情在线一区二区三区| 日韩欧美第二区在线观看| 欧美brazzers| 三级欧美韩日大片在线看| 国产成人免费视频精品含羞草妖精| 国产主播在线看| 亚洲午夜精品久久久久久性色| 18视频在线观看网站| 国产精品天天摸av网| 欧美韩国理论所午夜片917电影| 成人中文字幕+乱码+中文字幕| 色8久久人人97超碰香蕉987| 色播色播色播色播色播在线| 亚洲男人天堂av| 天堂а√在线官网| 福利视频在线播放| 精品一区二区无码| 成人av免费在线观看| 亚洲欧洲一区二区| 欧美色电影在线| 激情亚洲综合在线| 欧美激情网址| 久久久极品av| 欧美三级一区二区三区| 国产精品国产三级国产| 99成人免费视频| 91精品国产综合久久精品性色| 国产成人小视频在线观看| 精品人妻少妇嫩草av无码| 三级影片在线观看| av综合网址| 调教视频vk| 国产精品普通话| 99久久精品一区二区| 在线视频您懂的| 国产aⅴ精品一区二区三区久久| 日韩欧美四区| 老司机成人影院| 欧美人成在线观看| 久久久久亚洲av成人片| 美女网站在线免费欧美精品| 欧美videos另类齐全| 欧美裸体网站| xxxxx中文字幕| av黄色免费在线| 91亚洲人电影| 日本日本19xxxⅹhd乱影响| 欧美不卡一区二区| 一本色道**综合亚洲精品蜜桃冫| 成人福利电影精品一区二区在线观看| 欧美最猛性xxxxxhd| 国产一区二区三区av在线| 久草在线资源网站| 外国精品视频在线观看| xxxxx国产| 欧美福利视频在线| 高清国产一区二区三区四区五区| 免费看91视频| 九色视频网站入口| 亚洲午夜在线电影| 97免费中文视频在线观看| 这里只有精品电影| 欧美一区二区福利在线| 国产亚洲综合久久| 91人妻一区二区三区| 欧美激情区在线播放| 欧美13~18sex性hd| 永久在线免费观看| 日韩欧美成人精品| 午夜xxxxx| 精品人妻互换一区二区三区| 亚洲国产小视频在线观看| 免费精品视频在线| 天堂久久久久久| 国产精品久久久久久免费免熟| 国产成人无码av在线播放dvd| 国产一区调教| 日本亚洲导航| 风间由美久久久| 韩国女主播成人在线观看| 成年女人18级毛片毛片免费| 国产在线一区观看| 久久国产劲爆∧v内射| av网址在线观看免费| 欧美日韩午夜在线| 麻豆一二三区精品蜜桃| 久久精品国产亚洲7777| 精品欧美国产一区二区三区| 艳妇乳肉豪妇荡乳av无码福利| 欧美一级播放| a黄色片在线观看| 国产精品久久久久av免费| 夫妻av一区二区| 日本熟妇毛耸耸xxxxxx| 中文字幕在线视频精品| 精品999视频| 性生交生活影碟片| 日韩在线精品| 欧美色婷婷天堂网站| 一区二区视频在线播放| 毛片在线网址播放| 国产伦精品一区二区三区四区| 久久97超碰色| 亚洲欧美日韩一区二区三区在线| 久久久久久亚洲综合| 日韩欧美在线中文字幕| 欧美日韩精品是欧美日韩精品| 男女小视频在线观看| 精品久久久久久久久久久aⅴ| 三级久久三级久久| 在线免费观看日本欧美| 亚洲一区 视频| 欧美日韩亚洲91| 日韩一区二区三区免费看| 韩日在线播放| 黄色av网站免费观看| 中文字幕精品在线不卡| 日韩精品亚洲精品| 国产免费视频传媒| 欧美丝袜丝交足nylons| 国产制服91一区二区三区制服| 欧美成人h版在线观看| 亚洲曰本av电影| 小说区图片区色综合区| 欧美另类videos黑人极品| 国产成人欧美日韩在线电影| 亚洲人成网站在线播放2019| 欧美三级日本三级少妇99| 能在线观看的av| 国产精品亚洲第五区在线| 尤物在线观看| 神马一区二区影院| 欧美中文字幕不卡| 狠狠狠狠狠狠操| 国产精品一区二区人妻喷水| 韩国三级电影在线观看婷婷| 毛片一区二区三区四区| 91在线播放观看| 日韩黄色免费电影| 国产欧美精品一二三| 久久这里只有精品99| 亚洲欧美日韩成人网| 日韩有码在线电影| 国产剧情久久久久久| 久久免费少妇高潮99精品| 久久精品国产精品亚洲红杏| 国产一伦一伦一伦| 国产区一区二区| 欧美性猛交ⅹxxx乱大交免费| 国产xxxxxx久色视频在| 久久亚洲一区二区三区四区五区高| 国产成人在线网站| 亚洲区精品久久一区二区三区| 先锋影音av资源在线| 亚洲人成在线电影| 91麻豆精品秘密入口| 国内成人自拍| 女人18毛片水真多18精品| 一本大道香蕉久久| 日韩 欧美 自拍| 一区二区三区在线高清| 先锋资源一区二区| 亚洲色成人网站www永久四虎| 清纯唯美亚洲综合一区| 青青草原在线免费观看| 激情丁香综合五月| 神马影院一区二区三区|