天天看點

盤點Redis中被禁用的指令。redis常見面試題。redis中有一些指令是被禁止使用的,尤其是在生産環境中,像keys

作者:程式員葉偉

盤點Redis中被禁用的指令。redis常見面試題。

redis中有一些指令是被禁止使用的,尤其是在生産環境中,像keys,Flush All,config,這些是不允許使用的。主要的原因是因為這些指令可能會給系統帶來一些風險,有些可能是誤操作,不清楚底層原理,随便找到一個指令能夠滿足要求就用了。

有些可能會來自外部攻擊,是以從系統風險考慮了,很多環境在初始化redis的時候就會把這些指令添加到了黑名單。像Flush All,Flush DB,這些指令會對整個資料庫進行删除,它會把整個redis的資料全部幹掉,如果被惡意使用後果就不堪設想了,可能就會導緻整個的緩存資料丢失。

這個操作的指令有點像rm-rf/,不是删庫跑路的盡量不要用。比較容易被誤用的是keys這個指令,大家千萬要小心,很多場景可能會涉及到需要模糊查詢keys,比如說在商城的場景下面可能需要找到商品的緩存資料,就會執行keys。用它來比對以goods開頭的key。

它會掃描系統所有的滿足這個字首的key,其實在項目早期不會有什麼問題,因為key比較少,全部周遊也很快,但是随着系統越來越大緩存資料越來越多,掃描起來也會越來越慢的。再加上redis是單線程的,掃描的同時其他的讀寫指令都是阻塞的狀态,無法執行,就會導緻很多的API會出現逾時的現象,風險很高。

是以keys指令一般也是不允許使用的,一般是推薦使用scan,基于遊标的方式,一次是傳回有限的結果,相對來講性能要好很多。當然也可以使用set,比較傳統的一種方式來存儲某個場景下的所有的key,直接撈出來周遊一遍也是一種方案,當然要警惕bigkey。因為随着業務的增長随着其也會越來越大。另外還有一些指令一般也會禁用容易被攻擊。像config是吧,它是修改redis配置檔案的指令。還有像這個script是執行自定義腳本的指令。這些指令一般也是推薦在初始化的時候寫在配置檔案的黑名單裡的。

好了本期的視訊就是這些了,如果您對本期的内容有任何疑問歡迎大家在評論區給我留言,謝謝大家。

盤點Redis中被禁用的指令。redis常見面試題。redis中有一些指令是被禁止使用的,尤其是在生産環境中,像keys
盤點Redis中被禁用的指令。redis常見面試題。redis中有一些指令是被禁止使用的,尤其是在生産環境中,像keys
盤點Redis中被禁用的指令。redis常見面試題。redis中有一些指令是被禁止使用的,尤其是在生産環境中,像keys
盤點Redis中被禁用的指令。redis常見面試題。redis中有一些指令是被禁止使用的,尤其是在生産環境中,像keys