Exception in thread “main“ redis.clients.jedis.exceptions.JedisConnectionException: Failed to create
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: Failed to create
·
一、问题
最近弄Reids碰到这个问题
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: Failed to create socket.
at redis.clients.jedis.DefaultJedisSocketFactory.createSocket(DefaultJedisSocketFactory.java:93)
at redis.clients.jedis.Connection.connect(Connection.java:180)
at redis.clients.jedis.Connection.sendCommand(Connection.java:152)
at redis.clients.jedis.Connection.sendCommand(Connection.java:135)
at redis.clients.jedis.Jedis.ping(Jedis.java:353)
at com.azure.TestRedis.main(TestRedis.java:9)
Caused by: java.net.SocketTimeoutException: connect timed out
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
at java.net.Socket.connect(Socket.java:606)
at redis.clients.jedis.DefaultJedisSocketFactory.createSocket(DefaultJedisSocketFactory.java:65)
... 5 more
Exception in thread “main” redis.clients.jedis.exceptions.JedisConnectionException: Failed to create socket.
百度翻译
原因是Redis连接超时,因为我是连的阿里的服务器,所以要修改配置文件。
二、解决办法
找到你的Redis安装目录,vim修改这个文件,我的方法是再复制一个配置文件,启动时用新的配置文件启动。
[root@wangazure redis]# cp redis.conf azure.conf #将redis.conf复制到一个名字为azure.conf里
[root@wangazure redis]# ls
00-RELEASENOTES CONDUCT deps Makefile redis.conf runtest-cluster sentinel.conf tests version_check.pl
azure.conf CONTRIBUTING dump.rdb MANIFESTO redis.log runtest-moduleapi src TLS.md version.pl
BUGS COPYING INSTALL README.md runtest runtest-sentinel start.pl utils
修改新的配置文件azure.conf
[root@wangazure redis]# vim azure.conf
注意:进入vim编辑模式要按 i 键才能编辑,推出编辑模式按ESC键,再按分号和wq保存
这里有了insert才是编辑模式,
关闭:protected-mode(保护模式)把yes改成no
退出保存(:wq)
这里保存完了要重启下Redis服务。
[root@wangazure redis]# redis-cli -p 6379 shutdown #关闭redis
[root@wangazure redis]# pwd #查看文件路径
/www/server/redis
[root@wangazure src]# redis-server /www/server/redis/azure.conf #用新的配置文件重启redis
[root@wangazure src]# ps -aux|grep redis #查看redis服务
root 15335 0.0 0.1 162588 2640 ? Ssl 16:23 0:00 redis-server *:6379
root 15364 0.0 0.0 112812 980 pts/0 R+ 16:23 0:00 grep --color=auto redis
这里再测试下就好了
三、有一部分人用redis-server会报以下的错
[root@wangazure redis]# redis-server /www/server/redis/azure.conf
-bash: redis-server: command not found
原因:redis-server不是全局命令,那么加入到全局就可以了。
这里要把redis目录src下的redis-server文件复制到/usr/bin下
[root@wangazure src]# pwd #查看路径
/www/server/redis/src
[root@wangazure src]# cp redis-server /usr/bin/redis-server #把当前文件中的redis-server文件复制到/usr/bin下
再次重启Redis,测试下就好了
[root@wangazure src]# redis-cli -p 6379 shutdown #关闭redis
[root@wangazure src]# redis-server /www/server/redis/azure.conf #用新的配置文件重启redis
[root@wangazure src]# ps -aux|grep redis #查看redis服务
root 15335 0.0 0.1 162588 2640 ? Ssl 16:23 0:00 redis-server *:6379
root 15364 0.0 0.0 112812 980 pts/0 R+ 16:23 0:00 grep --color=auto redis
四、Redis后台运行
[root@wangazure redis]# vim redis.conf #进入编辑模式
[root@wangazure redis]#
把daemonize 设置为:yes
当我们采用yes时,Redis会在后台运行,此时Redis将一直运行
daemonize yes
更多推荐
已为社区贡献2条内容
所有评论(0)