问题描述
在高度可用的Redis服务器上运行KEYS *时,出现以下错误。
1394行中的文件“ /usr/local/lib/python3.7/site-packages/redis/client.py” 返回self.execute_command('SET',* pieces) 在call_if_sampling的第210行中,文件“ /usr/local/lib/python3.7/site-packages/elasticapm/instrumentation/packages/base.py” 返回self.call(模块,方法,包装的,实例,args,kwargs) 调用中的文件“ /usr/local/lib/python3.7/site-packages/elasticapm/instrumentation/packages/redis.py”,第66行 返回包装(* args,** kwargs) 在execute_command中的文件“ /usr/local/lib/python3.7/site-packages/redis/client.py”,行755 返回self.parse_response(连接,命令名,**选项) parse_response中的文件“ /usr/local/lib/python3.7/site-packages/redis/client.py”,行768 响应= connection.read_response() read_response中的文件“ /usr/local/lib/python3.7/site-packages/redis/connection.py”,第638行 引起回应 redis.exceptions.ResponseError:使用的内存>'maxmemory'时,不允许OOM命令。
解决方法
keys *
将扫描Redis数据库中的所有键,将所有键放入内存列表中,然后为命令建立响应。
如果您有大量的密钥,这将显着影响内存使用,可能会导致OOM异常。