今天在window搭建一个环境,项目启动发现redis连接失败报错


Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redissonClient' threw exception; nested exception is org.redisson.client.RedisConnectionException: Unable to connect to Redis server: /127.0.0.1:6379

 at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)

 at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651)

 ... 181 common frames omitted

Caused by: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: /127.0.0.1:6379

 at org.redisson.connection.pool.ConnectionPool$1.lambda$run$0(ConnectionPool.java:159)

 at org.redisson.misc.RedissonPromise.lambda$onComplete$0(RedissonPromise.java:183)

 at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:577)

 at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:551)

 at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:490)

 at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:615)

 at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:608)

 at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:117)

 at org.redisson.misc.RedissonPromise.tryFailure(RedissonPromise.java:96)

 at org.redisson.connection.pool.ConnectionPool.promiseFailure(ConnectionPool.java:329)

 at org.redisson.connection.pool.ConnectionPool.lambda$createConnection$1(ConnectionPool.java:295)

 at org.redisson.misc.RedissonPromise.lambda$onComplete$0(RedissonPromise.java:183)

 at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:577)

 at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:570)

 at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:549)

 at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:490)

 at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:615)

 at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:608)

 at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:117)

 at org.redisson.misc.RedissonPromise.tryFailure(RedissonPromise.java:96)

 at org.redisson.client.RedisClient$2$1.run(RedisClient.java:239)

 at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)

 at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)

 at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)

 at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)

 at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)

 at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)

 at java.lang.Thread.run(Thread.java:748)

Caused by: org.redisson.client.RedisException: ERR Client sent AUTH, but no password is set. channel: [id: 0x3f28ad59, L:/127.0.0.1:64483 - R:/127.0.0.1:6379] command: (AUTH), params: (password masked)

 at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:365)

 at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:196)

 at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:134)

 at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:104)

 at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:498)

 at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)

 at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)

 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377)

 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)

 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:355)

 at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)

 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377)

 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)

 at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)

 at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)

 at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)

 at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)

 at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)

 at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)

 ... 4 common frames omitted


刚开始以为是redis密码错误
但再次确定redis.windows.conf里的 requirepass 和项目配置的是一样的


最后网上寻找答案
在window双击redis-server.exe 后,在redis控制台会打印出下面信息


[23444] 21 Dec 08:45:16.032 # Warning: no config file specified, using the default config.

In order to specify a config file use D:\lsinstall\Redis-x64-3.2.100\redis-server.exe /path/to/redis.conf

在双击启动的时候默认去找了redis.conf的配置文件


知道原因就好解决了


方法1、
可以在redis目录下cmd运行命令:redis-server.exe redis.windows.conf
就是启动的时候去指定redis.windows.conf配置文件


方法2、
在redis目录下 start-redis.bat 内容 redis-server.exe redis.windows.conf
保存后,双击start-redis.bat即可