java连接redis原来如此。。。。

来源:互联网 发布:先知者软件要钱吗 编辑:程序博客网 时间:2024/05/23 23:28

0,工具

我使用的是Centos虚拟机、redis-3.2.3、eclipse

一:起因

最近在http://www.redis.net.cn/学redis,我是按照里面的教程一步一步来的,但是到了java连接redis的时候,老是不成功。网站上的代码是下面这样的。

import redis.clients.jedis.Jedis;public class RedisJava {   public static void main(String[] args) {      //连接本地的 Redis 服务      Jedis jedis = new Jedis("localhost");      System.out.println("Connection to server sucessfully");      //查看服务是否运行      System.out.println("Server is running: "+jedis.ping()); }}

我原来是写上面的代码的,我只是关闭了防火墙,但是是报refused connect错误。然而我现在也不知道为什么不行。。。。
于是,我就换了个代码。。。。

二、报过的错

refused connect
connect:time out
NOAUTH Authentication required
DENIED Redis is running in protected mode because protected mode is enabled
然后各种Google查询问大神。。不过大神很忙,还是得自己来。

三、解决办法:

1,关闭防火墙
1) 永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
3)运行完成后查看防火墙关闭状态

2,进去redis.conf里面注释掉bind 127.0.0.1
好像有些redis.conf文件里面是bind localhost。。

3,设置密码- [root@itcast01 redis-3.2.1]# redis-cli
127.0.0.1:6379> config set requirepass 123456
OK
127.0.0.1:6379>

4,我连接的代码

 public static void main(String[] args) {        //创建jedis对象                Jedis jedis = new Jedis("192.168.153.128", 6379);                jedis.auth("123456");                //调用jedis对象的方法,方法名称和redis 的命令一致                jedis.set("key2", "jedis test2");                String string = jedis.get("key2");                System.out.println(string);     }

其中192.168.153.128是虚拟机的ip,怎么知道呢??
在虚拟机中 ifconfig

root@localhost redis-3.2.3]# ifconfigeth0      Link encap:Ethernet  HWaddr 00:0C:29:4D:E1:40            inet addr:192.168.153.128  Bcast:192.168.153.255  Mask:255.255.255.0

=========完事==========
好想贴我连接成功的图片,天哪,我尝试好多次都上传不了,这是什么鬼呀。。。。

0 0
原创粉丝点击