一. 搭建简单的redis需要的jar包
commons-pool2-2.4.2.jar
spring-data-redis-1.4.0.RELEASE.jar
jedis-2.4.2.jar
此三个版本的jar包能够完全的配合,不会出现jar包冲突,或者版本不符合的情况.redis作为一个数据库,不会影响到正常的业务逻辑.
在java项目中,我们从redis查询是否有我们所需要的缓存,如果没有从数据库中查询出来,然后再存入redis缓存中,redis缓存相当于一个数据库的功能
一.redis利用连接池自动连接和释放
public class RedisUtil {
private static JedisPool jedisPool = null;
//初始化redis连接池
static{
JedisPoolConfig config = new JedisPoolConfig();
//配置最大jedis实例数
config.setMaxTotal(1000);
//配置资源池最大闲置数
config.setMaxIdle(200);
//等待可用连接的最大时间
config.setMaxWaitMillis(10000);
//最大空闲连接
config.setMaxIdle(5);
//则得到的jedis实例均是可用的
config.setTestOnBorrow(true);
jedisPool = new JedisPool(config,"127.0.0.1",6379);
}
//获取Jedis实例
public synchronized static Jedis getJedis(){
if(jedisPool != null){
Jedis resource = jedisPool.getResource();
return resource;
}else{
return null;
}
}
//释放Jedis资源
public static void closeJedis(final Jedis jedis){
if(jedis != null){
jedisPool.returnResource(jedis);
}
}
public static void main(String[] args) {
Jedis jedis = RedisUtil.getJedis();
jedis.hset("fdl_date", "aa", "bb");
String hget = jedis.hget("fdl_date", "aa");
System.out.println("存入redis后获取:"+hget);
jedis.hdel("fdl_date", "aa");
String hdel = jedis.hget("fdl_date", "aa");
System.out.println("删除redis后获取:"+hdel);
}
}
三. json转换工具,把List集合转化为json,把json转化为相关对象的集合
public class JsonUtils {
/**
* list对象集合转化为json字符串
* @param <T>
* @param ts
* @return
*/
public static <T> String listToJson(List<T> ts) {
String jsons = JSON.toJSONString(ts);
return jsons;
}
/**
* json转化为List对象集合
*/
public static <T> List<T> jsonToList(String jsonString, Class<T> clazz) {
@SuppressWarnings("unchecked")
List<T> ts = (List<T>) JSONArray.parseArray(jsonString, clazz);
return ts;
}
}
四.在java中进行调用示例
try {
key = fdlBsg.getAirline()+fdlBsg.getOcty()+fdlBsg.getDcty();
jedis = RedisUtil.getJedis();
String discountListJson = jedis.hget("FDL_REPORT_DATA_RATE_DISCOUNT", fdlBsg.getAirline()+fdlBsg.getOcty()+fdlBsg.getDcty());
if(null != discountListJson && discountListJson.length() > 0){
discountList = JsonUtils.jsonToList(discountListJson, DiscountMangent.class);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
RedisUtil.closeJedis(jedis);
}