Jedis异常解决:NOAUTH Authentication required解决

最近学习中需要使用redis,于是在window上安装了一个redis(其实是我搞不好虚拟机和本地连接,于是放弃了虚拟机安装redis)。一开始使用还很正常,也没有设置密码,按照网上所说的启动服务,然后打开可视化工具RedisDesktopManager,连接上了,在java中使用也正常。但是第二天的重启电脑的时候,运行java连接程序却在怎么也连不上。显示

NOAUTH Authentication required

需要密码认证的异常。 
到网上查了一下有人说是配置文件中的requiredpassword没有注释掉,我去看了一下,已经注释了,觉得应该不是这个问题。 
下面就是我的解决办法了: 
方法一:使用密码 
首先我在可视化工具里面加上密码,比如root,其他的跟之前连接都没有什么区别,然后竟然就连接上了,虽然有点摸不到头脑,但是确实解决了。 
然后剩下就是如何在java中也加入这个,大概代码是这样的,

JedisShardInfo shardInfo = new JedisShardInfo("redis://localhost:6379/9");//这里是连接的本地地址和端口
        shardInfo.setPassword("root");//这里是密码
        Jedis jedis = new Jedis(shardInfo);
        jedis.connect();
然后就连接上了,java这边也能正常使用。

方法二:不使用密码(推荐) 
当然还有不设密码的方式。这就需要去配置文件中去看requiredpassword,是否被注释,如果没有,就把他注释了。 
然后重点来了,如果只是简单的在redis的目录中启动服务redis-server.exe是不够的,因为这样启动并不会指定配置文件(这里是win的情况, linux的情况不清楚)。所以我们需要先关闭redis服务,然后在cmd进入redis的解压目录中重启服务,并且指定配置文件。命令是这样的:

redis-server.exe redis.windows.conf
如果你想使用密码,首先在配置文件中将requiredpassword的注释删去,然后在requiredpassword处写上自己的密码,最后需要在cmd中重启服务,并且一定要指定配置文件,否则你在配置文件所修改的配置并不会生效。 
希望能帮到大家。

原文:https://blog.csdn.net/FateRuler/article/details/81010716 
 

 

【redis-cli登录】:

redis-cli -h 127.0.0.1 -p 6379 -a pwd

你可能感兴趣的:(redis)