java连接redis采用jedis库,就是一个jar包,jedis提供了完善的操作redis的api接口,引入:
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
在java里使用jedis库操作redis有两种方式,一种是每次使用的时候都创建个连接,一种是使用连接池,学过jdbc的同学都知道,如果项目中真正使用的话当然使用连接池了。
一、单个连接
@Test //单个连接的方式 public void test1(){ Jedis jedis=new Jedis("10.253.12.22", 6379); jedis.auth("123456");//redis端配置了密码,通过auth方法设置访问密码 jedis.set("top1", "刘德华");//相当于redis命令 set top1 "刘德华" String string = jedis.get("k1");//相当于redis命令 get k1 System.out.println(string); jedis.close(); }
二、连接池的方式:
@Test //连接池的方式 public void test2(){ JedisPoolConfig jedisPoolConfig=new JedisPoolConfig(); jedisPoolConfig.setMaxTotal(100); jedisPoolConfig.setMaxIdle(10); JedisPool jedisPool=new JedisPool(jedisPoolConfig, "192.168.1.102", 6379); Jedis jedis=jedisPool.getResource(); jedis.auth("123456"); jedis.set("top1", "刘德华"); String string = jedis.get("name"); System.out.println(string); jedis.close(); jedisPool.close(); }
可能发生connection refused等问题,可以从下面几个方向查找问题:
1.确保防火墙放行了redis端口,或者直接关闭防火墙。
2.redis配置允许远程访问,即修改redis.conf里面的bind选项,默认是127.0.0.1,代表只能本机访问,可以改为具体ip,或者0.0.0.0以达到允许远程访问的目的。
3.如果你的redis版本比较新,还要修改redis.conf的protect-mode属性的值为no,让redis别在保护模式运行。如果运行在保护模式就需要强制使用密码,如果你不修改protect-mode属性,就要给redis设置密码,才能访问。设置密码可以通过./redis-cli config set requirepass 123456的方式临时设置也可以修改redis.conf里面的requirepass配置。