天天看点

盘点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