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

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

存儲 存儲軟件 Redis
redis2.8版本以后有了一個新命令scan,可以用來分批次掃描redis記錄,這樣肯定會導致整個查詢消耗的總時間變大,但不會影響redis服務卡頓,影響服務使用。

[[262841]]

一條鐵律

在業內,redis開發規范中有一條鐵律如下所示

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

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

下面講一講在線上執行正則匹配操作,引起緩存雪崩,最終數據庫宕機的原因。

分析原因

OK,先說兩句廢話

 1、redis是單線程的,其所有操作都是原子的,不會因并發產生數據異常

2、使用高耗時的Redis命令是很危險的,會占用***的一個線程的大量處理時間,導致所有的請求都被拖慢。(例如時間復雜度為O(N)的KEYS命令,嚴格禁止在生產環境中使用)

有上面兩句作鋪墊,原因就顯而易見了。

  • (1)運維人員進行keys *操作,該操作比較耗時,又因為redis是單線程的,所以redis被鎖住。
  • (2)此時QPS比較高,又來了幾萬個對redis的讀寫請求,因為redis被鎖住,所以全部Hang在那。
  • (3)因為太多線程Hang在那,CPU嚴重飆升,造成redis所在的服務器宕機
  • (4)所有的線程在redis那取不到數據,一瞬間全去數據庫取數據,數據庫就宕機了。

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

  • Flushdb 命令用于清空當前數據庫中的所有key
  • Flushall 命令用于清空整個 Redis 服務器的數據(刪除所有數據庫的所有 key )
  • CONFIG 客戶端連接后可配置服務器

因此,一個合格的redis運維或者開發,應該懂得如何禁用上面的命令。所以我一直覺得出現新聞中那種情況的原因,一般是人員的水平問題。

怎么禁用這些命令呢?

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

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

另外,對于FLUSHALL命令,需要設置配置文件中appendonly no,否則服務器是無法啟動

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

改良建議

業內建議使用scan命令來改良keys和SMEMBERS命令

redis2.8版本以后有了一個新命令scan,可以用來分批次掃描redis記錄,這樣肯定會導致整個查詢消耗的總時間變大,但不會影響redis服務卡頓,影響服務使用。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2021-08-23 13:19:24

算法大數據技術

2020-11-19 08:00:03

打工人離職工作

2022-01-04 08:16:49

編輯器在線編輯開發

2020-11-04 07:36:06

Redis二進制數據庫

2021-04-28 11:40:13

正則表達式Regex前端

2018-03-13 13:48:53

2009-12-15 17:16:49

免費在線操作系統

2020-02-14 13:18:26

AndroidEssentialEssential P

2021-03-14 15:58:26

手機定位系統

2010-08-11 10:58:06

AndroidAndroid NDK

2019-10-23 09:00:06

Redis數據庫

2017-08-18 22:40:33

線上線程備份

2022-10-10 08:05:34

線程池OOM問題

2023-03-10 08:24:27

OOMdump線程

2019-07-24 09:47:17

CIO人工智能信息化

2015-07-10 11:18:19

2015-02-27 13:51:32

數據安全

2022-07-01 08:47:46

CIO數據源數據

2010-08-09 16:30:53

面試

2022-05-18 10:38:51

Redis分布式鎖數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜欧美一区二区三区在线播放 | 久久国产精品久久久久久久久久 | 国产精品免费一区二区三区四区 | 日本福利在线观看 | 北条麻妃一区二区三区在线观看 | 91.com在线观看 | 日韩在线欧美 | 国产精品一区二区在线免费观看 | 日韩精品在线免费观看视频 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 久久99深爱久久99精品 | 国产高清精品一区二区三区 | 成人黄色在线视频 | 国产丝袜一区二区三区免费视频 | 精品欧美一区二区在线观看视频 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 成人免费视屏 | 一区二区三区四区电影 | 精品视频在线播放 | 国产99视频精品免费播放照片 | 天天操天天干天天曰 | 久久久久黄色 | 亚洲日日操 | aaa级片| 国产精品一区二区三区久久 | 国产传媒| 2021狠狠天天天| 欧美一区二区三区在线免费观看 | 在线日韩福利 | 成人免费看电影 | 日本不卡一区二区三区在线观看 | 日韩精品视频中文字幕 | 日本不卡免费新一二三区 | 狠狠的日 | av免费网址 | 一区二区三区视频在线 | 亚洲一区在线日韩在线深爱 | 亚洲免费成人 | 亚洲精品一区中文字幕乱码 | 日韩免费一二三区 | 欧美在线一区二区三区 |