1. java连接单机redis
首先创建一个普通的maven工程
(1)引入依赖
<dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.8.0</version>
</dependency>
</dependencies>
(2)测试
package demo01;
import redis.clients.jedis.Jedis;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Test01 {
public static void main(String[] args) {
//把所有关于对redis的操作都封装到一个类中Jedis。
// Jedis jedis=new Jedis();//无参构造函数,默认连接的是本地的redis。而且端口6379
Jedis jedis=new Jedis("192.168.223.147",6379);
// String ping = jedis.ping();//测试连通性
// System.out.println(ping);
Set<String> keys = jedis.keys("*");
System.out.println(keys);
Long del = jedis.del("k2", "k3","k5");
System.out.println("删除的个数:"+del);
//关于字符串的操作
// jedis.setex("k5",20L,"zkl");
// String k5 = jedis.get("k5");
// System.out.println(k5);
// Long setnx = jedis.setnx("k6", "yqc");
// System.out.println(setnx);
//关于hash的操作
jedis.hset("k10","name","tjc");
String hget = jedis.hget("k10", "name");
System.out.println(hget);
Map<String,String> map=new HashMap<String,String>();
map.put("name","王振阳");
map.put("age","18");
map.put("sex","男");
jedis.hset("k11",map);
Map<String, String> map1 = jedis.hgetAll("k11");
System.out.println(map1.get("name"));
//关于其他类型---自己实验
jedis.close();//关闭连接对象
}
}
特点: Jedis把对redis的操作都封装到Jedis类对象中了,而每个命令封装了一个对应的方法
2. java通过连接池连接redis
连接池的作用: 减少频繁创建和销毁连接对象。
package demo01;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class Test02 {
public static void main(String[] args) {
//配置连接对象信息
JedisPoolConfig poolConfig=new JedisPoolConfig();
poolConfig.setMinIdle(5);//设置最小的空闲数
poolConfig.setMaxIdle(10); //当没人连接redis服务器时,该池子中最能空闲几个连接对象
poolConfig.setMaxTotal(15); //当有人连接redis服务时,最大能生成多少个连接对象
// poolConfig.setMaxWait();
//创建连接池对象
JedisPool jedisPool=new JedisPool(poolConfig,"192.168.223.147",6379);
long start = System.currentTimeMillis();
//从连接池获取连接对象
for(int i=0;i<1000;i++) {
Jedis jedis = jedisPool.getResource();
jedis.ping();
jedis.close();//把该对象还给连接池
}
long end=System.currentTimeMillis();
System.out.println("耗时:"+(end-start));
}
}
3. java连接redis集群
public class Test03 {
public static void main(String[] args) {
Set<HostAndPort> set=new HashSet<HostAndPort>();
set.add(new HostAndPort("192.168.223.158",7001));
set.add(new HostAndPort("192.168.223.158",7002));
set.add(new HostAndPort("192.168.223.158",7003));
set.add(new HostAndPort("192.168.223.158",7004));
set.add(new HostAndPort("192.168.223.158",7005));
set.add(new HostAndPort("192.168.223.158",7006));
//创建一个Jedis集群对象---需要传入redis集群服务的地址信息
JedisCluster jedisCluster=new JedisCluster(set);
jedisCluster.set("k66","v66");
System.out.println(jedisCluster.get("k66"));
jedisCluster.close();
}
}