因项目需要,进行压力测试,压力测试时Redis挂掉,重新启动,然后过几秒钟又挂掉。查看状态为:redis-server 已死,但是 subsys 被锁。经过一番查找原因,解决问题的步骤如下:
1. 找到Redis对应的配置文件redis.conf(或redis63279.conf)
2. 配置文件中查找对应的日志文件目录 logfile:"/home/redis/log/redis.log(本地的Redis启动日志)" (本人的配置文件中此项为 logfile:"",所以在查找启动日志时花费了一些时间)
3. 直接查看日志内容,或重新启动Redis再查看日志内容。根据日志出错内容提示:
(1) cat /proc/sys/net/core/somaxconn 查看系统允许单个端口的最大连接数,我的服务器是128
(2) 此时修改为较大的连接数,例如1024 。执行命令:echo 1024 > /proc/sys/net/core/somaxconn
(3) 备份你的appendonly.aof文件。文件一般与你的配置文件在同一目录下。cp appendonly.aof appendonly.aof_back
(4)切换到Redis的bin目录下执行命令:./redis-check-aof --fix /usr/redis/appendonly.aof
4. 至此,执行命令:service redis restart 成功启动