是的,这又是一个坑爹的问题。
可能原因有:
情况1:
在redis.conf中设置了密码,而且redis还启动了,为什么说没有密码呢?
大家都知道linux下启动redis有很多种方法,
方式一: ./redis-server &
这种方法启动,不会带上你的redis.conf配置文件启动
方式二:还有 ./redis-server ../redis.conf
这种方法启动的时候,会去带上配置文件redis.conf
上面的问题 ERR Client sent AUTH, but no password is set 。我遇到过一次,原因是我大意了,我用了第一种方式启动,
这个时候redis是没有密码的,但是我的redis配置文件中配置了密码,所以当我在set值的时候就报这个错误了。
所以如果你配置了redis.conf这个文件,那么启动redis的时候也一定要带上这个文件启动。我以后一定要细心,大家也一定要细心,共勉。
情况2:
如果在redis.conf中没有密码,在编程时就不要添加密码。
如果在redis.conf中没有设置auth认证。在编程时就不要写 static String auth="root"; 我出错就是这个原因。直接注释掉就ok了
//private static String auth="root";