一、问题

最近弄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

在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐