赞
踩
昨天晚上项目的job突然报警,执行失败,然后检查了项目中的数据是没有问题的,查看了日志,报下面的错误,然后所有的接口都报Redis错误“500”。
DENIED Redis is running
in
protected mode because protected mode is enabled, no bind address was specified, <br>no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface.<br> If you want to connect from external computers to Redis you may adopt one of the following solutions:
1) Just disable protected mode sending the
command
'CONFIG SET protected-mode no'
from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet
if
you
do
so. Use CONFIG REWRITE to
make
this change permanent.
2) Alternatively you can just disable the protected mode by editing the Redis configuration
file
, and setting the protected mode option to
'no'
, and
then
restarting the server.
3) If you started the server manually just
for
testing, restart it with the
'--protected-mode no'
option.
4) Setup a bind address or an authentication password. NOTE: You only need to
do
one of the above things
in
order
for
the server to start accepting connections from the outside.
这个错误大概的意思是:redis的保护模式开启了,并且没有绑定ip地址,没有密码认证。
下面给你了4个方案:我是借鉴的大佬的博客原链接地址。
是说处于保护模式,只能本地链接,我们需要修改配置文件../redis.conf
1)打开配置文件把下面对应的注释掉
# bind 127.0.0.1
2)Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程,设置为no
daemonize no
3)保护模式
protected-mode no
4)最后关键的是:
没反应应该是你启动服务端的时候没有带上配置文件。你可以./redis-server redis.conf
你配置好了,但要重新启动redis,如果还是报一样的错误,很可能是没有启动到配置文件,所以需要真正的和配置文件启动需要:
在redis.conf文件的当前目录下:
$ redis-server redis.conf
如果还是所某个端口已在使用,那么可能是有 后台程序在占用该端口,需要kill 掉该程序,重新带上配置文件。./redis-server redis.conf启动。
将含有”redis”关键词的进程杀死:
$ ps -ef | grep redis | awk ‘{print $2}’ | xargs kill -9
最后:以上的4种方法应该都能解决你的问题,但是没有解决我的问题,因为我的Redis是没有问题的,都检查过了,跑的好好的。然后我是通过重启服务器上项目的jar包,然后问题解决了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。