使用spring测试redis相关操作时,出现以下错误
"C:\Z cap\jdk8u91\bin\java.exe" "-javaagent:C:\Z cap\idea\IntelliJ IDEA 2020.2.3\lib\idea_rt.jar=60156:C:\Z cap\idea\IntelliJ IDEA 2020.2.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Z cap\jdk8u91\jre\lib\charsets.jar;C:\Z cap\jdk8u91\jre\lib\deploy.jar;C:\Z cap\jdk8u91\jre\lib\ext\access-bridge-64.jar;C:\Z cap\jdk8u91\jre\lib\ext\cldrdata.jar;C:\Z cap\jdk8u91\jre\lib\ext\dnsns.jar;C:\Z cap\jdk8u91\jre\lib\ext\jaccess.jar;C:\Z cap\jdk8u91\jre\lib\ext\jfxrt.jar;C:\Z cap\jdk8u91\jre\lib\ext\localedata.jar;C:\Z cap\jdk8u91\jre\lib\ext\nashorn.jar;C:\Z cap\jdk8u91\jre\lib\ext\sunec.jar;C:\Z cap\jdk8u91\jre\lib\ext\sunjce_provider.jar;C:\Z cap\jdk8u91\jre\lib\ext\sunmscapi.jar;C:\Z cap\jdk8u91\jre\lib\ext\sunpkcs11.jar;C:\Z cap\jdk8u91\jre\lib\ext\zipfs.jar;C:\Z cap\jdk8u91\jre\lib\javaws.jar;C:\Z cap\jdk8u91\jre\lib\jce.jar;C:\Z cap\jdk8u91\jre\lib\jfr.jar;C:\Z cap\jdk8u91\jre\lib\jfxswt.jar;C:\Z cap\jdk8u91\jre\lib\jsse.jar;C:\Z cap\jdk8u91\jre\lib\management-agent.jar;C:\Z cap\jdk8u91\jre\lib\plugin.jar;C:\Z cap\jdk8u91\jre\lib\resources.jar;C:\Z cap\jdk8u91\jre\lib\rt.jar;F:\java相关文件\RedisFolder\Redis-String\target\classes;C:\Users\鲍超\.m2\repository\redis\clients\jedis\3.3.0\jedis-3.3.0.jar;C:\Users\鲍超\.m2\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;C:\Users\鲍超\.m2\repository\org\apache\commons\commons-pool2\2.6.2\commons-pool2-2.6.2.jar;C:\Users\鲍超\.m2\repository\org\springframework\data\spring-data-redis\2.3.3.RELEASE\spring-data-redis-2.3.3.RELEASE.jar;C:\Users\鲍超\.m2\repository\org\springframework\data\spring-data-keyvalue\2.3.3.RELEASE\spring-data-keyvalue-2.3.3.RELEASE.jar;C:\Users\鲍超\.m2\repository\org\springframework\data\spring-data-commons\2.3.3.RELEASE\spring-data-commons-2.3.3.RELEASE.jar;C:\Users\鲍超\.m2\repository\org\springframework\spring-context\5.2.8.RELEASE\spring-context-5.2.8.RELEASE.jar;C:\Users\鲍超\.m2\repository\org\springframework\spring-expression\5.2.8.RELEASE\spring-expression-5.2.8.RELEASE.jar;C:\Users\鲍超\.m2\repository\org\springframework\spring-tx\5.2.8.RELEASE\spring-tx-5.2.8.RELEASE.jar;C:\Users\鲍超\.m2\repository\org\springframework\spring-beans\5.2.8.RELEASE\spring-beans-5.2.8.RELEASE.jar;C:\Users\鲍超\.m2\repository\org\springframework\spring-core\5.2.8.RELEASE\spring-core-5.2.8.RELEASE.jar;C:\Users\鲍超\.m2\repository\org\springframework\spring-jcl\5.2.8.RELEASE\spring-jcl-5.2.8.RELEASE.jar;C:\Users\鲍超\.m2\repository\org\springframework\spring-oxm\5.2.8.RELEASE\spring-oxm-5.2.8.RELEASE.jar;C:\Users\鲍超\.m2\repository\org\springframework\spring-aop\5.2.8.RELEASE\spring-aop-5.2.8.RELEASE.jar;C:\Users\鲍超\.m2\repository\org\springframework\spring-context-support\5.2.8.RELEASE\spring-context-support-5.2.8.RELEASE.jar" com.bc.string.StringTest
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:282)
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:476)
at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:134)
at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:97)
at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:84)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:215)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:188)
at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:96)
at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:236)
at com.bc.string.StringTest.main(StringTest.java:14)
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
at redis.clients.jedis.util.Pool.getResource(Pool.java:59)
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:288)
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:15)
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:272)
... 9 more
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to 192.168.83.128:6379
at redis.clients.jedis.Connection.connect(Connection.java:165)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:109)
at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1904)
at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:130)
at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:889)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:424)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:349)
at redis.clients.jedis.util.Pool.getResource(Pool.java:50)
... 12 more
Caused by: java.net.SocketTimeoutException: connect timed out
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at redis.clients.jedis.DefaultJedisSocketFactory.createSocket(DefaultJedisSocketFactory.java:53)
at redis.clients.jedis.Connection.connect(Connection.java:158)
... 19 more
Process finished with exit code 1
解决方法:
使用的redis是在linux中,而linux中防火墙未关闭,导致redis无法访问,关闭linux的防火墙即可,在linux中操作以下指令:
systemctl stop firewalld
查看防火墙状态指令:
systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Wed 2020-11-18 14:26:15 CST; 9s ago
Docs: man:firewalld(1)
Process: 6255 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 6255 (code=exited, status=0/SUCCESS)
Nov 18 14:22:42 localhost.localdomain firewalld[6255]: WARNING: COMMAND_FAILED: '/u....
Nov 18 14:22:42 localhost.localdomain firewalld[6255]: WARNING: COMMAND_FAILED: '/u....
Nov 18 14:22:42 localhost.localdomain firewalld[6255]: WARNING: COMMAND_FAILED: '/u....
Nov 18 14:22:42 localhost.localdomain firewalld[6255]: WARNING: COMMAND_FAILED: '/u....
Nov 18 14:22:42 localhost.localdomain firewalld[6255]: WARNING: COMMAND_FAILED: '/u....
Nov 18 14:22:42 localhost.localdomain firewalld[6255]: WARNING: COMMAND_FAILED: '/u....
Nov 18 14:22:42 localhost.localdomain firewalld[6255]: WARNING: COMMAND_FAILED: '/u....
Nov 18 14:22:42 localhost.localdomain firewalld[6255]: WARNING: COMMAND_FAILED: '/u....
Nov 18 14:26:14 localhost.localdomain systemd[1]: Stopping firewalld - dynamic fire....
Nov 18 14:26:15 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firew....
Hint: Some lines were ellipsized, use -l to show in full.
防火墙已关闭,即可在spring中访问redis了