在redis数据量比较大时,执行 keys * ,fluashdb 这些命令,会导致redis长时间阻塞,大量请求被阻塞,cpu飙升,严重可能导致redis宕机,数据库雪崩。所以一些命令在生产环境禁止使用。
Redis 禁用命令
为防止执行高危操作过程,Redis 数据的安全,Redis 禁用了如下命令:
-  BGREWRITEAOF: -  功能: 异步重写 AOF(Append Only File)文件,优化文件大小。 
-  用途: 用于在不中断服务的情况下优化持久化文件。 
 
-  
-  BGSAVE: -  功能: 异步保存当前数据库的状态到磁盘。 
-  用途: 用于在后台进行数据备份。 
 
-  
-  CONFIG: -  功能: 用于获取和设置 Redis 服务器的配置参数。 
-  用途: 用于动态调整 Redis 服务器的配置,如内存限制、日志级别等。 
 
-  
-  DEBUG: -  功能: 提供一系列调试命令,如 DEBUG OBJECT和DEBUG SEGFAULT。
-  用途: 用于诊断和调试 Redis 服务器的问题。 
 
-  
-  KEYS: -  功能: 查找所有符合给定模式的键。 
-  用途: 用于查找和管理数据库中的键,但要注意在大数据库中使用可能会影响性能。 
 
-  
-  REPLICAOF: -  功能: 将当前服务器设置为另一个 Redis 服务器的副本。 
-  用途: 用于实现主从复制,提高数据可靠性和读取性能。 
 
-  
-  SAVE: -  功能: 同步保存当前数据库的状态到磁盘。 
-  用途: 用于立即进行数据备份,但会阻塞服务器直到保存完成。 
 
-  
-  SHUTDOWN: -  功能: 安全地关闭 Redis 服务器。 
-  用途: 用于在维护或升级时关闭服务器,可以带参数如 NOSAVE或SAVE来控制是否在关闭前进行保存。
 
-  
-  SLAVEOF: -  功能: 与 REPLICAOF功能相同,但SLAVEOF是旧版本的命令,新版本推荐使用REPLICAOF。
-  用途: 用于实现主从复制。 
 
-  
如何规避Redis的危险命令
修改服务器的配置文件redis.conf,在SECURITY这一项中,我们新增以下命令:
rename-command BGREWRITEAOF ""
rename-command BGSAVE  		""
rename-command CONFIG   	""
rename-command KEYS     	""
rename-command DEBUG 		""
rename-command REPLICAOF  	""
rename-command SAVE   		""
rename-command SHUTDOWN     ""
rename-command SLAVEOF 		""如果想要保留命令,但是不能轻易使用,可以重命名命令来设定,设置随机字符代替:
rename-command BGREWRITEAOF d1ce7f8be0453da5fe3a114136ab9fc2
rename-command BGSAVE  		a1d305d283aeebbbb63205e258b115d2
rename-command CONFIG   	73e99d350a4aa6f1a5af04ec29173f73
rename-command KEYS     	48fb38e1f876fa3dc9c8cd6cad73c243
rename-command DEBUG 		dc30ec20708ef7b0f641ef78b7880a15
rename-command REPLICAOF  	13bc29f65cfd5353e36769924a62b401
rename-command SAVE   		f5cf47ab06d0d98b0d16d10c82d87953
rename-command SHUTDOWN     b9984206799a7f9fe4bd1b6c18db8112
rename-command SLAVEOF 		edffca596321632e1845860c7104bf92
对于FLUSHALL命令,需要设置配置文件中appendonly no,否则服务器无法启动。
重启服务器
