婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > redis中熱key問題該如何解決

redis中熱key問題該如何解決

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

引言

講了幾天的數(shù)據(jù)庫系列的文章,大家一定看煩了,其實還沒講完。。。(以下省略一萬字)。

今天我們換換口味,來寫redis方面的內(nèi)容,談?wù)劅醟ey問題如何解決。

其實熱key問題說來也很簡單,就是瞬間有幾十萬的請求去訪問redis上某個固定的key,從而壓垮緩存服務(wù)的情情況。

其實生活中也是有不少這樣的例子。比如XX明星結(jié)婚。那么關(guān)于XX明星的Key就會瞬間增大,就會出現(xiàn)熱數(shù)據(jù)問題。

ps: hot key和big key問題,大家一定要有所了解。

本文預(yù)計分為如下幾個部分

  • 熱key問題
  • 如何發(fā)現(xiàn)
  • 業(yè)內(nèi)方案

正文

熱Key問題

上面提到,所謂熱key問題就是,突然有幾十萬的請求去訪問redis上的某個特定key。那么,這樣會造成流量過于集中,達(dá)到物理網(wǎng)卡上限,從而導(dǎo)致這臺redis的服務(wù)器宕機(jī)。

那接下來這個key的請求,就會直接懟到你的數(shù)據(jù)庫上,導(dǎo)致你的服務(wù)不可用。

怎么發(fā)現(xiàn)熱key

方法一:憑借業(yè)務(wù)經(jīng)驗,進(jìn)行預(yù)估哪些是熱key

其實這個方法還是挺有可行性的。比如某商品在做秒殺,那這個商品的key就可以判斷出是熱key。缺點很明顯,并非所有業(yè)務(wù)都能預(yù)估出哪些key是熱key。

方法二:在客戶端進(jìn)行收集

這個方式就是在操作redis之前,加入一行代碼進(jìn)行數(shù)據(jù)統(tǒng)計。那么這個數(shù)據(jù)統(tǒng)計的方式有很多種,也可以是給外部的通訊系統(tǒng)發(fā)送一個通知信息。缺點就是對客戶端代碼造成入侵。

方法三:在Proxy層做收集

有些集群架構(gòu)是下面這樣的,Proxy可以是Twemproxy,是統(tǒng)一的入口。可以在Proxy層做收集上報,但是缺點很明顯,并非所有的redis集群架構(gòu)都有proxy。


方法四:用redis自帶命令

(1)monitor命令,該命令可以實時抓取出redis服務(wù)器接收到的命令,然后寫代碼統(tǒng)計出熱key是啥。當(dāng)然,也有現(xiàn)成的分析工具可以給你使用,比如 redis-faina 。但是該命令在高并發(fā)的條件下,有內(nèi)存增暴增的隱患,還會降低redis的性能。

(2)hotkeys參數(shù),redis 4.0.3提供了redis-cli的熱點key發(fā)現(xiàn)功能,執(zhí)行redis-cli時加上–hotkeys選項即可。但是該參數(shù)在執(zhí)行的時候,如果key比較多,執(zhí)行起來比較慢。

方法五:自己抓包評估

Redis客戶端使用TCP協(xié)議與服務(wù)端進(jìn)行交互,通信協(xié)議采用的是RESP。自己寫程序監(jiān)聽端口,按照RESP協(xié)議規(guī)則解析數(shù)據(jù),進(jìn)行分析。缺點就是開發(fā)成本高,維護(hù)困難,有丟包可能性。

以上五種方案,各有優(yōu)缺點。根據(jù)自己業(yè)務(wù)場景進(jìn)行抉擇即可。那么發(fā)現(xiàn)熱key后,如何解決呢?

如何解決

目前業(yè)內(nèi)的方案有兩種

(1)利用二級緩存

比如利用 ehcache ,或者一個 HashMap 都可以。在你發(fā)現(xiàn)熱key以后,把熱key加載到系統(tǒng)的JVM中。

針對這種熱key請求,會直接從jvm中取,而不會走到redis層。

假設(shè)此時有十萬個針對同一個key的請求過來,如果沒有本地緩存,這十萬個請求就直接懟到同一臺redis上了。

現(xiàn)在假設(shè),你的應(yīng)用層有50臺機(jī)器,OK,你也有jvm緩存了。這十萬個請求平均分散開來,每個機(jī)器有2000個請求,會從JVM中取到value值,然后返回數(shù)據(jù)。避免了十萬個請求懟到同一臺redis上的情形。

(2)備份熱key

這個方案也很簡單。不要讓key走到同一臺redis上不就行了。我們把這個key,在多個redis上都存一份不就好了。接下來,有熱key請求進(jìn)來的時候,我們就在有備份的redis上隨機(jī)選取一臺,進(jìn)行訪問取值,返回數(shù)據(jù)。

假設(shè)redis的集群數(shù)量為N,步驟如下圖所示


注:不一定是2N,你想取3N,4N都可以,看要求。

偽代碼如下

const M = N * 2
//生成隨機(jī)數(shù)
random = GenRandom(0, M)
//構(gòu)造備份新key
bakHotKey = hotKey + “_” + random
data = redis.GET(bakHotKey)
if data == NULL {
  data = GetFromDB()
  redis.SET(bakHotKey, expireTime + GenRandom(0,5))
}

業(yè)內(nèi)方案

OK,其實看完上面的內(nèi)容,大家可能會有一個疑問。

煙哥,有辦法在項目運行過程中,自動發(fā)現(xiàn)熱key,然后程序自動處理么?
嗯,好問題,那我們來講講業(yè)內(nèi)怎么做的。其實只有兩步

(1)監(jiān)控?zé)醟ey

(2)通知系統(tǒng)做處理

正巧,前幾天有贊出了一篇《有贊透明多級緩存解決方案(TMC)》,里頭也有提到熱點key問題,我們剛好借此說明

(1)監(jiān)控?zé)醟ey

在監(jiān)控?zé)醟ey方面,有贊用的是方式二:在客戶端進(jìn)行收集。

在《有贊透明多級緩存解決方案(TMC)》中有一句話提到

TMC 對原生jedis包的JedisPool和Jedis類做了改造,在JedisPool初始化過程中集成TMC“熱點發(fā)現(xiàn)”+“本地緩存”功能Hermes-SDK包的初始化邏輯。

也就說人家改寫了jedis原生的jar包,加入了Hermes-SDK包。

那Hermes-SDK包用來干嘛?

OK,就是做 熱點發(fā)現(xiàn) 和 本地緩存 。

從監(jiān)控的角度看,該包對于Jedis-Client的每次key值訪問請求,Hermes-SDK 都會通過其通信模塊將key訪問事件異步上報給Hermes服務(wù)端集群,以便其根據(jù)上報數(shù)據(jù)進(jìn)行“熱點探測”。

當(dāng)然,這只是其中一種方式,有的公司在監(jiān)控方面用的是方式五:自己抓包評估

具體是這么做的,先利用flink搭建一套流式計算系統(tǒng)。然后自己寫一個抓包程序抓redis監(jiān)聽端口的數(shù)據(jù),抓到數(shù)據(jù)后往kafka里丟。

接下來,流式計算系統(tǒng)消費kafka里的數(shù)據(jù),進(jìn)行數(shù)據(jù)統(tǒng)計即可,也能達(dá)到監(jiān)控?zé)醟ey的目的。

(2)通知系統(tǒng)做處理

在這個角度,有贊用的是上面的解決方案一:利用二級緩存進(jìn)行處理。

有贊在監(jiān)控到熱key后,Hermes服務(wù)端集群會通過各種手段通知各業(yè)務(wù)系統(tǒng)里的Hermes-SDK,告訴他們:"老弟,這個key是熱key,記得做本地緩存。"

于是Hermes-SDK就會將該key緩存在本地,對于后面的請求。Hermes-SDK發(fā)現(xiàn)這個是一個熱key,直接從本地中拿,而不會去訪問集群。

除了這種通知方式以外。我們也可以這么做,比如你的流式計算系統(tǒng)監(jiān)控到熱key了,往zookeeper里頭的某個節(jié)點里寫。然后你的業(yè)務(wù)系統(tǒng)監(jiān)聽該節(jié)點,發(fā)現(xiàn)節(jié)點數(shù)據(jù)變化了,就代表發(fā)現(xiàn)熱key。最后往本地緩存里寫,也是可以的。

通知方式各種各樣,大家可以自由發(fā)揮。本文只是提供一個思路。

總結(jié)

希望通過本文,大家明白如何處理生產(chǎn)上遇到的熱key問題。

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Redis批量刪除KEY的方法
  • Redis教程(七):Key操作命令詳解
  • Redis獲取某個前綴的key腳本實例
  • redis數(shù)據(jù)庫查找key在內(nèi)存中的位置的方法
  • 關(guān)于使用key/value數(shù)據(jù)庫redis和TTSERVER的心得體會
  • 關(guān)于redis Key淘汰策略的實現(xiàn)方法
  • Redis獲取某個大key值的腳本實例
  • redis 用scan指令 代替keys指令(詳解)
  • Redis未授權(quán)訪問配合SSH key文件利用詳解

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《redis中熱key問題該如何解決》,本文關(guān)鍵詞  redis,中熱,key,問題,該,如何,;如發(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中熱key問題該如何解決》相關(guān)的同類信息!
  • 本頁收集關(guān)于redis中熱key問題該如何解決的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    狂野欧美性猛交blacked| 午夜电影网一区| 精品国产乱码久久久久久影片| 中文字幕亚洲电影| 日韩制服丝袜先锋影音| 日韩影院精彩在线| 99视频超级精品| 丝袜亚洲另类欧美| 日本韩国欧美一区二区三区| 天天综合网 天天综合色| 国产精品三级av在线播放| 一区二区视频免费在线观看| 视频一区二区中文字幕| 精品亚洲国内自在自线福利| 99天天综合性| 欧美一卡二卡三卡| 中文一区二区在线观看| 久久精品国产一区二区三区免费看| 国内精品嫩模私拍在线| av一区二区三区黑人| 日本一区二区动态图| 国产宾馆实践打屁股91| 成人免费av网站| 国产精品午夜免费| 97久久精品人人爽人人爽蜜臀| 蜜桃av噜噜一区| 欧美视频在线一区二区三区 | 石原莉奈在线亚洲三区| 亚洲成人免费在线观看| 成人午夜激情影院| 欧美精品第一页| 国产精品久久久久桃色tv| 日韩中文字幕不卡| 国精产品一区一区三区mba桃花| 一区二区三区在线观看国产| 91麻豆精品国产91久久久久久久久 | 亚洲欧美韩国综合色| 国产精品久久久久久久久久久免费看 | 日本在线不卡视频| 国产九九视频一区二区三区| 欧美体内she精高潮| 欧美国产一区在线| 精品一区二区影视| 欧美视频精品在线观看| 亚洲欧美中日韩| 高清日韩电视剧大全免费| 成人av免费观看| 中文字幕一区二区三区精华液| 日韩免费电影一区| 亚洲欧洲在线观看av| 国产成人精品一区二| 精品国一区二区三区| 免费成人在线网站| 欧美日韩另类一区| 亚洲欧美怡红院| 自拍偷拍亚洲激情| 国产精品大尺度| 亚洲二区在线观看| 欧美日韩国产三级| 26uuu国产一区二区三区| 欧美写真视频网站| 99久久精品免费看国产| 99久久99久久综合| 懂色av一区二区夜夜嗨| 欧美日韩一级黄| 欧美日韩视频在线第一区 | 欧美午夜在线一二页| 国产在线麻豆精品观看| 精品国产成人在线影院| 久久99国产精品成人| 亚洲mv在线观看| 国产精品99久久久久久有的能看| 色综合久久66| 久久精品日韩一区二区三区| 国产精品一二三区| 国产精品色婷婷久久58| 日韩中文字幕1| jizz一区二区| 一区二区欧美在线观看| 欧美系列一区二区| 亚洲视频一区二区在线| 奇米精品一区二区三区在线观看一| www.欧美精品一二区| voyeur盗摄精品| 香蕉影视欧美成人| 日韩av网站免费在线| 国产欧美日韩精品a在线观看| 国产精品美女久久久久久2018| 欧美日韩另类一区| 肉色丝袜一区二区| 国产精品传媒在线| 国产色产综合色产在线视频| 精品视频一区 二区 三区| 丁香天五香天堂综合| 免费在线观看一区| 亚洲精品菠萝久久久久久久| 久久精品欧美一区二区三区麻豆| 国产一区在线精品| 亚洲伊人色欲综合网| 国产精品欧美极品| 国产精品色眯眯| 精品国产不卡一区二区三区| 欧美精品一二三区| 欧美在线观看视频一区二区三区| 久久蜜臀中文字幕| 不卡电影一区二区三区| 国产成人在线免费| 亚洲男同性视频| 亚洲精品在线观看网站| 亚洲人妖av一区二区| 欧美日韩卡一卡二| 欧美在线视频全部完| 亚洲视频在线一区| 成人精品gif动图一区| 国产精品18久久久久| 日本欧美一区二区| 天天综合天天综合色| 国产精品久久久久久久久快鸭 | 青青青爽久久午夜综合久久午夜| 99久久精品免费看国产| 粉嫩蜜臀av国产精品网站| 久久99精品国产麻豆不卡| 偷窥少妇高潮呻吟av久久免费| 顶级嫩模精品视频在线看| 国产在线精品不卡| 成年人午夜久久久| 国产传媒一区在线| 99精品国产99久久久久久白柏| 久久嫩草精品久久久精品| 国产三级精品在线| 国产欧美一二三区| 亚洲国产精品二十页| 亚洲精品乱码久久久久久日本蜜臀 | 一区二区三区国产精华| 一区二区在线观看av| 亚洲一区二区三区精品在线| 婷婷久久综合九色综合绿巨人 | 欧美日韩大陆在线| 97精品国产97久久久久久久久久久久| 久久久久国产精品麻豆ai换脸| 夫妻av一区二区| 国产成人免费网站| 色8久久人人97超碰香蕉987| 在线观看一区日韩| 日韩免费一区二区三区在线播放| 国产在线精品一区二区不卡了 | 琪琪一区二区三区| 国产精品自在欧美一区| 91久久精品国产91性色tv| 56国语精品自产拍在线观看| 中文字幕的久久| 日本特黄久久久高潮 | 欧美午夜精品电影| 欧美v国产在线一区二区三区| 欧美三级电影一区| 精品国产成人系列| 亚洲图片欧美色图| 国产一区二区三区| 在线不卡a资源高清| 亚洲丝袜自拍清纯另类| 久久不见久久见中文字幕免费| 亚洲免费大片在线观看| 亚洲成av人片在线观看| 精品制服美女久久| 国产一区二区福利视频| 国产在线播放一区三区四| 国产一区二区三区免费播放| 色综合中文字幕国产| 国产91色综合久久免费分享| 91久久精品一区二区三区| 欧美色图片你懂的| 亚洲日本一区二区三区| 蜜桃一区二区三区在线| av午夜一区麻豆| 久久精品男人天堂av| 国产精品久久夜| 免费在线观看视频一区| 7799精品视频| 国产精品成人免费精品自在线观看| 91麻豆免费看片| 91精品一区二区三区在线观看| 蜜桃久久av一区| 欧美偷拍一区二区| 久久久久久99久久久精品网站| 欧美性色欧美a在线播放| 欧美美女一区二区三区| 久久午夜电影网| 亚洲成av人片| 国产精品资源站在线| 91在线云播放| 精品欧美一区二区久久 | 香蕉影视欧美成人| 国产精品一区二区免费不卡| 欧美日韩一区高清| 国产精品麻豆一区二区| 成人午夜在线免费| 精品久久久久久无| 午夜精品免费在线| 91精品婷婷国产综合久久竹菊| 精品国产一区二区三区av性色|