代码拉取完成,页面将自动刷新
二级缓存用lettuce,当redis key超时销毁后,通过cache.exist 判断key是否存在,提示出错
java.io.IOException: 远程主机强迫关闭了一个现有的连接。
at sun.nio.ch.SocketDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
at sun.nio.ch.IOUtil.read(IOUtil.java:192)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
io.lettuce.core.RedisException: java.io.IOException: 远程主机强迫关闭了一个现有的连接。
at io.lettuce.core.LettuceFutures.awaitOrCancel(LettuceFutures.java:132)
at io.lettuce.core.FutureSyncInvocationHandler.handleInvocation(FutureSyncInvocationHandler.java:69)
at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80)
at com.sun.proxy.$Proxy117.get(Unknown Source)
at sun.reflect.GeneratedMethodAccessor414.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:45005)
at java.lang.reflect.Method.invoke(Method.java:498)
刚开始以为是连接超时,lettuce.timeout设置30s也没用,所以应该不是连接超时的问题
代码如下:
CacheChannel cache = J2Cache.getChannel();
System.out.println(cache.check("aaa", "bbb"));
key超时销毁后请求报错,再请求一次就正常