java操作redis(远程连接阿里云上的redis)

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

一、搭建java的redis demo项目

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

我用的是maven的java项目,在这里贴出来pom引用:


      redis.clients
      jedis
      2.9.0
    

 
      commons-pool
      commons-pool
      1.6
 

二、测试连接,出现问题

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"));
    }

java操作redis(远程连接阿里云上的redis)_第1张图片

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

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

三、尝试开启远程允许

java操作redis(远程连接阿里云上的redis)_第2张图片

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

java操作redis(远程连接阿里云上的redis)_第3张图片

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

四、解决方案

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

java操作redis(远程连接阿里云上的redis)_第4张图片

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

java操作redis(远程连接阿里云上的redis)_第5张图片

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

 

你可能感兴趣的:(redis)