之前在我的阿里云部署的redis,一直用命令练习,也没啥实际意义。毕竟咱是java开发,又不是运维,还是希望在代码里操作redis。不过在这之前遇到过一点小麻烦,在java代码里不能连接阿里云上的redis。

一、搭建java的redis demo项目

依赖工具包就两个:jedis-2.9.0.jar      commons-pool-1.6.jar

我用的是maven的java项目,在这里贴出来pom引用:
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId>
<version>2.9.0</version> </dependency> <dependency>
<groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId>
<version>1.6</version> </dependency>
二、测试连接,出现问题

redis的java连接代码很简单,就是一个构造就行了,然而这里却碰到了一个问题
public static void main(String[] args) { Jedis jedis= new Jedis(
JedisTest.URL,63**);//URL是我阿里云的IP System.out.println(jedis.ping());
System.out.println(jedis.get("mm"));
System.out.println(jedis.set("steve","tao")); }


(注:之前阿里云被人利用redis 6379端口号注入了蠕虫病毒挖矿,后面就改了端口号,这里不敢贴出IP和端口号,望体谅)

出现这种情况之后,也是一头雾水,去网上一搜。都说是redis3.0之后默认只准本机访问了,需要修改server.conf配置文件的bind
和protected-mode两处地方。

三、尝试开启远程允许




去阿里云上一看,确实是3.0版本的redis。那就该吧!然而在改配置文件的时候又发现了问题,文件里没有protected-mode配置项,自己添加redis启动就会报错。这里只是改了bind



这种情况下java还是无法连接redis。尝试了设置密码,java代码里用密码登录,也还是不行

四、解决方案

折腾了好久,想起了以前配置activemq的时候也出现过java代码里无法连接,只是xshell可以操作,当时是由于阿里云的安全组控制作怪。



登录后台一看才恍然大悟,之前redis用的是6379,因为前段时间redis被感染病毒,就改了端口,这里没有为新端口设置安全规则。添加安全规则之后,再去尝试:



可以联通了,后面就开始Jedis的学习吧!

 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信