成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Redis 敢在線上做Keys正則匹配操作!你可以離職了!

存儲(chǔ) 存儲(chǔ)軟件 Redis
redis2.8版本以后有了一個(gè)新命令scan,可以用來(lái)分批次掃描redis記錄,這樣肯定會(huì)導(dǎo)致整個(gè)查詢(xún)消耗的總時(shí)間變大,但不會(huì)影響redis服務(wù)卡頓,影響服務(wù)使用。

[[262841]]

一條鐵律

在業(yè)內(nèi),redis開(kāi)發(fā)規(guī)范中有一條鐵律如下所示

線上Redis禁止使用Keys正則匹配操作

然而大家都知道,卻一直忘記,所以事故會(huì)不斷的發(fā)生。

下面講一講在線上執(zhí)行正則匹配操作,引起緩存雪崩,最終數(shù)據(jù)庫(kù)宕機(jī)的原因。

分析原因

OK,先說(shuō)兩句廢話

 1、redis是單線程的,其所有操作都是原子的,不會(huì)因并發(fā)產(chǎn)生數(shù)據(jù)異常

2、使用高耗時(shí)的Redis命令是很危險(xiǎn)的,會(huì)占用***的一個(gè)線程的大量處理時(shí)間,導(dǎo)致所有的請(qǐng)求都被拖慢。(例如時(shí)間復(fù)雜度為O(N)的KEYS命令,嚴(yán)格禁止在生產(chǎn)環(huán)境中使用)

有上面兩句作鋪墊,原因就顯而易見(jiàn)了。

  • (1)運(yùn)維人員進(jìn)行keys *操作,該操作比較耗時(shí),又因?yàn)閞edis是單線程的,所以redis被鎖住。
  • (2)此時(shí)QPS比較高,又來(lái)了幾萬(wàn)個(gè)對(duì)redis的讀寫(xiě)請(qǐng)求,因?yàn)閞edis被鎖住,所以全部Hang在那。
  • (3)因?yàn)樘嗑€程Hang在那,CPU嚴(yán)重飆升,造成redis所在的服務(wù)器宕機(jī)
  • (4)所有的線程在redis那取不到數(shù)據(jù),一瞬間全去數(shù)據(jù)庫(kù)取數(shù)據(jù),數(shù)據(jù)庫(kù)就宕機(jī)了。

需要注意的是,同樣危險(xiǎn)的命令不僅有keys *,還有以下幾組

  • Flushdb 命令用于清空當(dāng)前數(shù)據(jù)庫(kù)中的所有key
  • Flushall 命令用于清空整個(gè) Redis 服務(wù)器的數(shù)據(jù)(刪除所有數(shù)據(jù)庫(kù)的所有 key )
  • CONFIG 客戶端連接后可配置服務(wù)器

因此,一個(gè)合格的redis運(yùn)維或者開(kāi)發(fā),應(yīng)該懂得如何禁用上面的命令。所以我一直覺(jué)得出現(xiàn)新聞中那種情況的原因,一般是人員的水平問(wèn)題。

怎么禁用這些命令呢?

就是在redis.conf中,在SECURITY這一項(xiàng)中,我們新增以下命令:

  1. rename-command FLUSHALL "" 
  2. rename-command FLUSHDB "" 
  3. rename-command CONFIG "" 
  4. rename-command KEYS "" 

另外,對(duì)于FLUSHALL命令,需要設(shè)置配置文件中appendonly no,否則服務(wù)器是無(wú)法啟動(dòng)

注意了,上面的這些命令可能有遺漏,大家可以查官方文檔。除了Flushdb這類(lèi)和redis安全隱患有關(guān)的命令意外,但凡發(fā)現(xiàn)時(shí)間復(fù)雜度為O(N)的命令,都要慎重,不要在生產(chǎn)上隨便使用。例如hgetall、lrange、smembers、zrange、sinter等命令,它們并非不能使用,但這些命令的時(shí)間復(fù)雜度都為O(N),使用這些命令需要明確N的值,否則也會(huì)出現(xiàn)緩存宕機(jī)。

改良建議

業(yè)內(nèi)建議使用scan命令來(lái)改良keys和SMEMBERS命令

redis2.8版本以后有了一個(gè)新命令scan,可以用來(lái)分批次掃描redis記錄,這樣肯定會(huì)導(dǎo)致整個(gè)查詢(xún)消耗的總時(shí)間變大,但不會(huì)影響redis服務(wù)卡頓,影響服務(wù)使用。

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2020-11-19 08:00:03

打工人離職工作

2021-08-23 13:19:24

算法大數(shù)據(jù)技術(shù)

2022-01-04 08:16:49

編輯器在線編輯開(kāi)發(fā)

2020-11-04 07:36:06

Redis二進(jìn)制數(shù)據(jù)庫(kù)

2021-04-28 11:40:13

正則表達(dá)式Regex前端

2018-03-13 13:48:53

2009-12-15 17:16:49

免費(fèi)在線操作系統(tǒng)

2019-10-23 09:00:06

Redis數(shù)據(jù)庫(kù)

2020-02-14 13:18:26

AndroidEssentialEssential P

2021-03-14 15:58:26

手機(jī)定位系統(tǒng)

2010-08-11 10:58:06

AndroidAndroid NDK

2022-10-10 08:05:34

線程池OOM問(wèn)題

2023-03-10 08:24:27

OOMdump線程

2017-08-18 22:40:33

線上線程備份

2015-07-10 11:18:19

2019-07-24 09:47:17

CIO人工智能信息化

2022-07-01 08:47:46

CIO數(shù)據(jù)源數(shù)據(jù)

2015-02-27 13:51:32

數(shù)據(jù)安全

2010-08-09 16:30:53

面試

2018-03-15 10:24:56

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 天天操 夜夜操 | 亚洲一卡二卡 | 欧美精品一区二区三区在线播放 | 欧美1区| 亚洲视频自拍 | 91精品久久久久久久久 | aaa精品| 国产片一区二区三区 | 伊人免费观看视频 | 日本三级全黄三级三级三级口周 | 91免费视频 | xxx.在线观看 | 免费观看一级毛片视频 | 高清欧美性猛交xxxx黑人猛交 | 91精品国产色综合久久 | 亚洲综合大片69999 | 午夜91| 91网视频 | 一区二区视频在线 | 亚洲一区二区三 | 成年女人免费v片 | 欧美极品视频 | 欧美久久久久久 | 久久久成人网 | 91文字幕巨乱亚洲香蕉 | 精品国产乱码久久久久久1区2区 | 不卡一区 | 欧美日韩久久 | 日韩av在线不卡 | 亚洲成人自拍 | 免费国产一区二区 | 久久久久成人精品免费播放动漫 | 成人毛片在线视频 | 亚洲不卡视频 | 搞黄视频免费看 | 蜜臀网 | 久久久久国产一区二区三区四区 | 欧美人妖网站 | 亚洲日韩中文字幕一区 | 天天操天天射综合网 | 秋霞精品 |