Caused by: io.lettuce.core.RedisCommandExecutionException: ERR unknown command CONFIG

项目本机启动运行正常,打成jar发布测试环境公司测试服务器正常启动运行,项目上线需要发布客户购买的亚马逊的K8S服务器,同时客户在亚马逊购买了Redis服务器,PostgreSQL服务器,所以新建配置文件,将代码构建镜像推送至客户服务器,然后进行启动编译,连接数据库一切正常,但是到连接Redis时一直报错,开始运维只给了报错截图,报错信息不全,导致一直找不到具体原因走了许多弯路,也并没有解决问题

截图如下!
在这里插入图片描述

通过这张图片一直以为是Redis连接超时问题,以为是Redis设置超时时间太短,一直在修改Redis超时时间,后来发现没有什么用,后来以为是因为是生产环境,对redis的危险命令进行禁用重命名,但是经过一番折腾后发现也没什么用,后来让运维发了具体的报错信息,具体信息如下:

Caused by: org.springframework.data.redis.RedisSystemException: Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: ERR unknown command CONFIG, with args beginning with: GET, notify-keyspace-events,
at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:54)
at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:52)
at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41)
at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)
at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:42)
at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:271)
at org.springframework.data.redis.connection.lettuce.LettuceConnection.await(LettuceConnection.java:1062)
at org.springframework.data.redis.connection.lettuce.LettuceConnection.lambda$doInvoke

4

(

L

e

t

t

u

c

e

C

o

n

n

e

c

t

i

o

n

.

j

a

v

a

:

919

)

a

t

o

r

g

.

s

p

r

i

n

g

f

r

a

m

e

w

o

r

k

.

d

a

t

a

.

r

e

d

i

s

.

c

o

n

n

e

c

t

i

o

n

.

l

e

t

t

u

c

e

.

L

e

t

t

u

c

e

I

n

v

o

k

e

r

4(LettuceConnection.java:919) at org.springframework.data.redis.connection.lettuce.LettuceInvoker

4(LettuceConnection.java:919)atorg.springframework.data.redis.connection.lettuce.LettuceInvokerSynchronizer.invoke(LettuceInvoker.java:673)
at org.springframework.data.redis.connection.lettuce.LettuceInvoker

D

e

f

a

u

l

t

S

i

n

g

l

e

I

n

v

o

c

a

t

i

o

n

S

p

e

c

.

g

e

t

(

L

e

t

t

u

c

e

I

n

v

o

k

e

r

.

j

a

v

a

:

589

)

a

t

o

r

g

.

s

p

r

i

n

g

f

r

a

m

e

w

o

r

k

.

d

a

t

a

.

r

e

d

i

s

.

c

o

n

n

e

c

t

i

o

n

.

l

e

t

t

u

c

e

.

L

e

t

t

u

c

e

S

e

r

v

e

r

C

o

m

m

a

n

d

s

.

g

e

t

C

o

n

f

i

g

(

L

e

t

t

u

c

e

S

e

r

v

e

r

C

o

m

m

a

n

d

s

.

j

a

v

a

:

177

)

a

t

o

r

g

.

s

p

r

i

n

g

f

r

a

m

e

w

o

r

k

.

d

a

t

a

.

r

e

d

i

s

.

c

o

n

n

e

c

t

i

o

n

.

D

e

f

a

u

l

t

e

d

R

e

d

i

s

C

o

n

n

e

c

t

i

o

n

.

g

e

t

C

o

n

f

i

g

(

D

e

f

a

u

l

t

e

d

R

e

d

i

s

C

o

n

n

e

c

t

i

o

n

.

j

a

v

a

:

1416

)

a

t

o

r

g

.

s

p

r

i

n

g

f

r

a

m

e

w

o

r

k

.

d

a

t

a

.

r

e

d

i

s

.

l

i

s

t

e

n

e

r

.

K

e

y

s

p

a

c

e

E

v

e

n

t

M

e

s

s

a

g

e

L

i

s

t

e

n

e

r

.

i

n

i

t

(

K

e

y

s

p

a

c

e

E

v

e

n

t

M

e

s

s

a

g

e

L

i

s

t

e

n

e

r

.

j

a

v

a

:

89

)

a

t

o

r

g

.

s

p

r

i

n

g

f

r

a

m

e

w

o

r

k

.

d

a

t

a

.

r

e

d

i

s

.

l

i

s

t

e

n

e

r

.

K

e

y

s

p

a

c

e

E

v

e

n

t

M

e

s

s

a

g

e

L

i

s

t

e

n

e

r

.

a

f

t

e

r

P

r

o

p

e

r

t

i

e

s

S

e

t

(

K

e

y

s

p

a

c

e

E

v

e

n

t

M

e

s

s

a

g

e

L

i

s

t

e

n

e

r

.

j

a

v

a

:

137

)

a

t

o

r

g

.

s

p

r

i

n

g

f

r

a

m

e

w

o

r

k

.

b

e

a

n

s

.

f

a

c

t

o

r

y

.

s

u

p

p

o

r

t

.

A

b

s

t

r

a

c

t

A

u

t

o

w

i

r

e

C

a

p

a

b

l

e

B

e

a

n

F

a

c

t

o

r

y

.

i

n

v

o

k

e

I

n

i

t

M

e

t

h

o

d

s

(

A

b

s

t

r

a

c

t

A

u

t

o

w

i

r

e

C

a

p

a

b

l

e

B

e

a

n

F

a

c

t

o

r

y

.

j

a

v

a

:

1863

)

a

t

o

r

g

.

s

p

r

i

n

g

f

r

a

m

e

w

o

r

k

.

b

e

a

n

s

.

f

a

c

t

o

r

y

.

s

u

p

p

o

r

t

.

A

b

s

t

r

a

c

t

A

u

t

o

w

i

r

e

C

a

p

a

b

l

e

B

e

a

n

F

a

c

t

o

r

y

.

i

n

i

t

i

a

l

i

z

e

B

e

a

n

(

A

b

s

t

r

a

c

t

A

u

t

o

w

i

r

e

C

a

p

a

b

l

e

B

e

a

n

F

a

c

t

o

r

y

.

j

a

v

a

:

1800

)

.

.

.

24

m

o

r

e

C

a

u

s

e

d

b

y

:

i

o

.

l

e

t

t

u

c

e

.

c

o

r

e

.

R

e

d

i

s

C

o

m

m

a

n

d

E

x

e

c

u

t

i

o

n

E

x

c

e

p

t

i

o

n

:

E

R

R

u

n

k

n

o

w

n

c

o

m

m

a

n

d

C

O

N

F

I

G

,

w

i

t

h

a

r

g

s

b

e

g

i

n

n

i

n

g

w

i

t

h

:

G

E

T

,

n

o

t

i

f

y

k

e

y

s

p

a

c

e

e

v

e

n

t

s

,

a

t

i

o

.

l

e

t

t

u

c

e

.

c

o

r

e

.

i

n

t

e

r

n

a

l

.

E

x

c

e

p

t

i

o

n

F

a

c

t

o

r

y

.

c

r

e

a

t

e

E

x

e

c

u

t

i

o

n

E

x

c

e

p

t

i

o

n

(

E

x

c

e

p

t

i

o

n

F

a

c

t

o

r

y

.

j

a

v

a

:

147

)

a

t

i

o

.

l

e

t

t

u

c

e

.

c

o

r

e

.

i

n

t

e

r

n

a

l

.

E

x

c

e

p

t

i

o

n

F

a

c

t

o

r

y

.

c

r

e

a

t

e

E

x

e

c

u

t

i

o

n

E

x

c

e

p

t

i

o

n

(

E

x

c

e

p

t

i

o

n

F

a

c

t

o

r

y

.

j

a

v

a

:

116

)

a

t

i

o

.

l

e

t

t

u

c

e

.

c

o

r

e

.

p

r

o

t

o

c

o

l

.

A

s

y

n

c

C

o

m

m

a

n

d

.

c

o

m

p

l

e

t

e

R

e

s

u

l

t

(

A

s

y

n

c

C

o

m

m

a

n

d

.

j

a

v

a

:

120

)

a

t

i

o

.

l

e

t

t

u

c

e

.

c

o

r

e

.

p

r

o

t

o

c

o

l

.

A

s

y

n

c

C

o

m

m

a

n

d

.

c

o

m

p

l

e

t

e

(

A

s

y

n

c

C

o

m

m

a

n

d

.

j

a

v

a

:

111

)

a

t

i

o

.

l

e

t

t

u

c

e

.

c

o

r

e

.

p

r

o

t

o

c

o

l

.

C

o

m

m

a

n

d

H

a

n

d

l

e

r

.

c

o

m

p

l

e

t

e

(

C

o

m

m

a

n

d

H

a

n

d

l

e

r

.

j

a

v

a

:

746

)

a

t

i

o

.

l

e

t

t

u

c

e

.

c

o

r

e

.

p

r

o

t

o

c

o

l

.

C

o

m

m

a

n

d

H

a

n

d

l

e

r

.

d

e

c

o

d

e

(

C

o

m

m

a

n

d

H

a

n

d

l

e

r

.

j

a

v

a

:

681

)

a

t

i

o

.

l

e

t

t

u

c

e

.

c

o

r

e

.

p

r

o

t

o

c

o

l

.

C

o

m

m

a

n

d

H

a

n

d

l

e

r

.

c

h

a

n

n

e

l

R

e

a

d

(

C

o

m

m

a

n

d

H

a

n

d

l

e

r

.

j

a

v

a

:

598

)

a

t

i

o

.

n

e

t

t

y

.

c

h

a

n

n

e

l

.

A

b

s

t

r

a

c

t

C

h

a

n

n

e

l

H

a

n

d

l

e

r

C

o

n

t

e

x

t

.

i

n

v

o

k

e

C

h

a

n

n

e

l

R

e

a

d

(

A

b

s

t

r

a

c

t

C

h

a

n

n

e

l

H

a

n

d

l

e

r

C

o

n

t

e

x

t

.

j

a

v

a

:

379

)

a

t

i

o

.

n

e

t

t

y

.

c

h

a

n

n

e

l

.

A

b

s

t

r

a

c

t

C

h

a

n

n

e

l

H

a

n

d

l

e

r

C

o

n

t

e

x

t

.

i

n

v

o

k

e

C

h

a

n

n

e

l

R

e

a

d

(

A

b

s

t

r

a

c

t

C

h

a

n

n

e

l

H

a

n

d

l

e

r

C

o

n

t

e

x

t

.

j

a

v

a

:

365

)

a

t

i

o

.

n

e

t

t

y

.

c

h

a

n

n

e

l

.

A

b

s

t

r

a

c

t

C

h

a

n

n

e

l

H

a

n

d

l

e

r

C

o

n

t

e

x

t

.

f

i

r

e

C

h

a

n

n

e

l

R

e

a

d

(

A

b

s

t

r

a

c

t

C

h

a

n

n

e

l

H

a

n

d

l

e

r

C

o

n

t

e

x

t

.

j

a

v

a

:

357

)

a

t

i

o

.

n

e

t

t

y

.

c

h

a

n

n

e

l

.

D

e

f

a

u

l

t

C

h

a

n

n

e

l

P

i

p

e

l

i

n

e

DefaultSingleInvocationSpec.get(LettuceInvoker.java:589) at org.springframework.data.redis.connection.lettuce.LettuceServerCommands.getConfig(LettuceServerCommands.java:177) at org.springframework.data.redis.connection.DefaultedRedisConnection.getConfig(DefaultedRedisConnection.java:1416) at org.springframework.data.redis.listener.KeyspaceEventMessageListener.init(KeyspaceEventMessageListener.java:89) at org.springframework.data.redis.listener.KeyspaceEventMessageListener.afterPropertiesSet(KeyspaceEventMessageListener.java:137) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) … 24 more Caused by: io.lettuce.core.RedisCommandExecutionException: ERR unknown command `CONFIG`, with args beginning with: `GET`, `notify-keyspaceevents`, at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:147) at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:116) at io.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:120) at io.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:111) at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:746) at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:681) at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:598) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.channel.DefaultChannelPipeline

DefaultSingleInvocationSpec.get(LettuceInvoker.java:589)atorg.springframework.data.redis.connection.lettuce.LettuceServerCommands.getConfig(LettuceServerCommands.java:177)atorg.springframework.data.redis.connection.DefaultedRedisConnection.getConfig(DefaultedRedisConnection.java:1416)atorg.springframework.data.redis.listener.KeyspaceEventMessageListener.init(KeyspaceEventMessageListener.java:89)atorg.springframework.data.redis.listener.KeyspaceEventMessageListener.afterPropertiesSet(KeyspaceEventMessageListener.java:137)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)…24moreCausedby:io.lettuce.core.RedisCommandExecutionException:ERRunknowncommandCONFIG,withargsbeginningwith:GET,notifykeyspaceevents,atio.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:147)atio.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:116)atio.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:120)atio.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:111)atio.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:746)atio.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:681)atio.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:598)atio.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)atio.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)atio.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)atio.netty.channel.DefaultChannelPipelineHeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800)
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
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)

报错原因原因spring-session调用了CONFIG命令配置Keyspace notifications功能。而线上环境的redis基于权限考虑,禁止应用服务执行CONFIG命令,这样就导致了应用初始化抛出异常
具体解决方式如下:
1、打开redis的Keyspace notifications功能,在redis.conf配置文件添加下面的配置项:
notify-keyspaceevents Ex
由于我这边是客户提供海外的k8s服务器,我不能直接进行修改Redis配置文件,所以此方法行不通
2、关闭Spring-session使用CONFIG命令操作
在这里插入图片描述

@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800)
public class RedisSessionConfig {
@Bean
public static ConfigureRedisAction configureRedisAction() {
    return ConfigureRedisAction.NO_OP;
}

}
到此,重新打包发布,项目成功启动运行,问题可以解决

原文地址:https://blog.csdn.net/weixin_39844149/article/details/128939054

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_33340.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注