Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。 在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 在企业中用的最多的就是Jedis,Jedis同样也是托管在github上,地址:https://github.com/xetorthio/jedis。
使用Jedis时,需要导入两个jar包:
Jedis的基本操作是:
Jedis的常用API是:
Jedis的基本操作是:
@Testpublic voidtestJedisSingle(){//1 设置ip地址和端口
Jedis jedis = new Jedis("localhost", 6379);//2 设置数据
jedis.set("name", "qingmu");//3 获得数据
String name = jedis.get("name");
System.out.println(name);//4 释放资源
jedis.close();
}
jedis连接池的使用:
jedis连接资源的创建与销毁是很消耗程序性能,所以jedis为我们提供了jedis的池化技术,jedisPool在创建时初始化一些连接资源存储到连接池中,使用jedis连接资源时不需要创建,而是从连接池中获取一个资源进行redis的操作,使用完毕后,不需要销毁该jedis连接资源,而是将该资源归还给连接池,供其他请求使用。
Jedis连接池查询API的方式:
jedisPool的基本使用:
@Testpublic voidtestJedisPool(){//1 获得连接池配置对象,设置配置项
JedisPoolConfig config = newJedisPoolConfig();//1.1 最大连接数
config.setMaxTotal(30);//1.2 最大空闲连接数
7.4 案例-编写jedis连接池工具类
JedisUtils.java
config.setMaxIdle(10);//2 获得连接池
JedisPool jedisPool = new JedisPool(config, "localhost", 6379);//3 获得核心对象
Jedis jedis = null;try{
jedis=jedisPool.getResource();//4 设置数据
jedis.set("name", "itcast");//5 获得数据
String name = jedis.get("name");
System.out.println(name);
}catch(Exception e) {
e.printStackTrace();
}finally{if(jedis != null){
jedis.close();
}//虚拟机关闭时,释放pool资源
if(jedisPool != null){
jedisPool.close();
}
}
}
Jedis的工具类的编写:
packagecom.itheima.utils;importjava.util.ResourceBundle;importredis.clients.jedis.Jedis;importredis.clients.jedis.JedisPool;importredis.clients.jedis.JedisPoolConfig;public classJedisUtils {private static JedisPoolConfig poolConfig = null;private static JedisPool jedisPool = null;private static Integer maxTotal = null;private static Integer maxIdle = null;private static String host = null;private static Integer port = null;static{
jedis.properties//读取配置文件 获得参数值
ResourceBundle rb = ResourceBundle.getBundle("jedis");
maxTotal= Integer.parseInt(rb.getString("jedis.maxTotal"));
maxIdle= Integer.parseInt(rb.getString("jedis.maxIdle"));
port= Integer.parseInt(rb.getString("jedis.port"));
host= rb.getString("jedis.host");
poolConfig= newJedisPoolConfig();
poolConfig.setMaxTotal(maxTotal);
poolConfig.setMaxIdle(maxIdle);
jedisPool= newJedisPool(poolConfig,host,port);
}public staticJedis getJedis(){
Jedis jedis=jedisPool.getResource();returnjedis;
}
}
jedis.properties
jedis.host=localhost
jedis.port=6379jedis.maxTotal=30jedis.maxIdle=10