Redis 之使用的注意事項(xiàng)

1.redis使用中的深坑monitor命令

????事情的原由開啟redis的monitor命令雌桑,為然后把日志出入到磁盤中,方便查詢系統(tǒng)bug你踩。到了第二天下午2點(diǎn)左右刊侯,整個平臺開始出現(xiàn)大面積的崩潰,通過報警發(fā)現(xiàn)redis的cpu占用達(dá)到99%芒炼,但是不知道由什么引起的瘫怜,隨后開始google 發(fā)現(xiàn)網(wǎng)上已經(jīng)有人遇到相同的問題。他說的原因就是monitor本刽,隨后我們感覺關(guān)閉了monitor命令 cpu一下子恢復(fù)正常 從99%降到33%鲸湃,以下是monitor命令的截圖正常的情況cpu占用39%

image.png

當(dāng)開啟monitor命令,如下圖

image.png

????redis的cpu占用瞬間從39%變成85%子寓。為什么說redis的cpu占用達(dá)到99%平臺就會卡住唤锉,因?yàn)閞edis是單核所有系統(tǒng)操作redis都被阻塞了,導(dǎo)致一系列的雪崩别瞭。

2.redis使用中的深坑keys命令

????系統(tǒng)有個業(yè)務(wù)場景是這樣的窿祥,需要推送通知給所有的在線客服,我們一個程序員寫了這樣的代碼

Jedis jedis = CacheUtils.getJedis();
try{
   List list =  jedis.keys("online.kf.*");
   .......循環(huán)list 執(zhí)行推送業(yè)務(wù).....
}finally{
  CacheUtils.returnJedis(jedis);
}

????看上去代碼沒有毛病蝙寨,但是發(fā)布到了線上系統(tǒng)開始崩潰晒衩,又是一連串的雪崩。墙歪。听系。 o(︶︿︶)o唉 大家不要笑話我們的系統(tǒng)架構(gòu),沒辦法系統(tǒng)還在改造中虹菲。通過redis的執(zhí)行slowlog get 10 分析執(zhí)行查詢時間發(fā)行keys命令執(zhí)行長達(dá)1秒鐘靠胜,也就是說1秒鐘內(nèi)所有操作redis的系統(tǒng)將被阻塞。毕源。浪漠。。 好可怕啊有木有⊙♂⊙霎褐。址愿。。

image.png

????上圖是我們生產(chǎn)環(huán)境執(zhí)行的keys時間將近2秒鐘冻璃,keys是時間復(fù)雜度是O(N)响谓, N 為數(shù)據(jù)庫中 key 的數(shù)量,redis的官方給出了使用keys的一個警告省艳。

image.png

3.redis周期性的拋出Could not get a resource from the pool

????原由是客戶度去jedispool獲取jedis的時候發(fā)現(xiàn)jedis已經(jīng)被其他線程全部取走娘纷,然后當(dāng)前線程會進(jìn)入等待,等待時間超過maxActive將會拋出Could not get a resource from the pool跋炕,造成這點(diǎn)的原因我遇到了兩種赖晶。
????1.由于系統(tǒng)的并發(fā)量增加導(dǎo)致的瓶頸,解決方案 調(diào)整maxActive的大小枣购、調(diào)整MaxTotal的大小嬉探、testOnBorrow為false testOnReturn為false 擦耀。
????testOnBorrow、testOnReturn這兩個參數(shù)的作用是從jedispool獲取jedis 和釋放jedis的會ping一下redis涩堤,如果ping不通則拋出異常眷蜓,所以這里造成了資源的兩次浪費(fèi)。╮(╯_╰)╭

 @Override
  public boolean validateObject(PooledObject<Jedis> pooledJedis) {
    final BinaryJedis jedis = pooledJedis.getObject();
    try {
      HostAndPort hostAndPort = this.hostAndPort.get();

      String connectionHost = jedis.getClient().getHost();
      int connectionPort = jedis.getClient().getPort();

      return hostAndPort.getHost().equals(connectionHost)
          && hostAndPort.getPort() == connectionPort && jedis.isConnected()
          && jedis.ping().equals("PONG");
    } catch (final Exception e) {
      return false;
    }
  }

????2.內(nèi)網(wǎng)帶寬滿被占用滿胎围。解決方案 網(wǎng)卡把千兆網(wǎng)卡換成萬兆完美解決吁系。
????內(nèi)網(wǎng)服務(wù)之間消息大量的傳輸沾滿了整個帶寬導(dǎo)致應(yīng)用程序向redis發(fā)送請求的時候卡了,所以導(dǎo)致異常╮(╯_╰)╭

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末白魂,一起剝皮案震驚了整個濱河市汽纤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌福荸,老刑警劉巖蕴坪,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異敬锐,居然都是意外死亡背传,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門台夺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來径玖,“玉大人,你說我怎么就攤上這事颤介∈嵝牵” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵滚朵,是天一觀的道長冤灾。 經(jīng)常有香客問我,道長始绍,這世上最難降的妖魔是什么瞳购? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮亏推,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘年堆。我一直安慰自己吞杭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布变丧。 她就那樣靜靜地躺著芽狗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪痒蓬。 梳的紋絲不亂的頭發(fā)上童擎,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天滴劲,我揣著相機(jī)與錄音,去河邊找鬼顾复。 笑死班挖,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的芯砸。 我是一名探鬼主播萧芙,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼假丧!你這毒婦竟也來了双揪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤包帚,失蹤者是張志新(化名)和其女友劉穎渔期,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體渴邦,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疯趟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了几莽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迅办。...
    茶點(diǎn)故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖章蚣,靈堂內(nèi)的尸體忽然破棺而出站欺,到底是詐尸還是另有隱情,我是刑警寧澤纤垂,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布矾策,位于F島的核電站,受9級特大地震影響峭沦,放射性物質(zhì)發(fā)生泄漏贾虽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一吼鱼、第九天 我趴在偏房一處隱蔽的房頂上張望蓬豁。 院中可真熱鬧,春花似錦菇肃、人聲如沸地粪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蟆技。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間质礼,已是汗流浹背旺聚。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留眶蕉,地道東北人砰粹。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像妻坝,于是被迫代替她去往敵國和親伸眶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評論 2 355

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