JAVA使用redis缓存的工具类,实现了javaBean,List集合,Map集合的直接存取

package com.ilike.redis.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
* redis缓存工具类
*
* @author Administrator
*
*/
public class JedisUtil {

// 定义一个连接池对象
private static final JedisPool POOL;

static {
    // 1.设置连接池的配置对象
    JedisPoolConfig config = new JedisPoolConfig();
    // 设置连接池的最大连接数【可选】
    config.setMaxTotal(50);
    // 设置空闲时池中保有的最大连接数【可选】
    config.setMaxIdle(10);
    // 2.设置连接池对象
    POOL = new JedisPool(config, "192.168.111.128", 6379);
}

/**
 * 从池中获取连接
 */
public static Jedis getJedis() {
    return POOL.getResource();
}

/**
 * 将redis存放数据的方式做进一步封装,使其更加适合java数据的存放 此方法将javaBean直接存储为一个字符串
 * 
 * @param key
 *            存储的名字
 * @param javaBean
 *            要存储的对象
 * @param activeTime
 *            该对象的有效时间,单位为秒
 */

public static Boolean setBean(String key, Object javaBean,
        Integer activeTime) {
    /**
     * 1.获取jedis对象 2.将对象转成json数据存入redis缓存 3.释放资源
     */
    if (javaBean != null && key != null && key != "") {
        Jedis jedis = POOL.getResource();
        jedis.set(key, JSONObject.fromObject(javaBean).toString());
        if (activeTime != null && activeTime > 0) {
            jedis.expire(key, activeTime);
        }
        jedis.close();
        return true;
    }
    return false;
}

/**
 * 此方法将会把存在redis中的数据取出来,并封装成相应的JavaBean
 * 
 * @param key
 *            存储的名字
 * @param beanClass
 *            要封装成为的javaBean
 * @return javaBean
 */
public static Object getBean(String key, Class beanClass) {
    if (key != null && key != "" && beanClass != null) {
        Jedis jedis = POOL.getResource();
        Object object = JSONObject.toBean(
                JSONObject.fromObject(jedis.get(key)), beanClass);
        jedis.close();
        return object;
    }
    return null;
}

/**
 * 
 * 此方法将ArrayList集合直接存储为一个字符串
 * 
 * @param key
 *            存储的名字
 * @param list
 *            要存储的集合对象
 * @param activeTime
 *            该对象的有效时间,单位为秒
 */
public static Boolean setArrayList(String key, List<Object> list,
        Integer activeTime) {
    if (list != null && key != null && key != "") {
        Jedis jedis = POOL.getResource();
        jedis.set(key, JSONArray.fromObject(list).toString());
        if (activeTime != null && activeTime > 0) {
            jedis.expire(key, activeTime);
        }
        jedis.close();
        return true;
    }
    return false;
}

/**
 * 此方法将会把存在redis中的数据取出来,并封装成相应的Arraylist集合
 * 
 * @param key
 *            存储的名字
 * @param beanClass
 *            要封装成为的javaBean
 * @return List
 */
public static List<Object> getArraylist(String key, Class beanClass) {
    if (key != null && key != "" && beanClass != null) {
        Jedis jedis = POOL.getResource();
        JSONArray jsonArray = JSONArray.fromObject(jedis.get(key));
        List<Object> list = new ArrayList<Object>();
        for (int i = 0; i < jsonArray.size(); i++) {
            Object object = JSONObject.toBean(
                    (JSONObject) jsonArray.get(i), beanClass);
            list.add(object);
        }
        return list;
    }
    return null;
}


/**
 * 此方法将Map集合直接存储为一个字符串
 * @param key         存储的名字
 * @param map         要存储的Map集合对象
 * @param activeTime  该对象的有效时间,单位为秒
 * @return            成功返回true,失败返回false
 */
public static boolean setMap(String key, Map<String, Object> map,
        Integer activeTime) {
    if (map != null && key != null && key != "") {
        Jedis jedis = POOL.getResource();
        jedis.set(key, JSONObject.fromObject(map).toString());
        if (activeTime != null && activeTime > 0) {
            jedis.expire(key, activeTime);
        }
        jedis.close();
        return true;
    }
    return false;
}

/**
 * 此方法将会把存在redis中的数据取出来,并封装成相应的Map集合
 * @param key          存储的名字
 * @param beanClass    要封装成的对象
 * @return             返回封装后的map集合
 */
public static Map<String, Object> getMap(String key, Class beanClass) {
    if (key != null && key != "" && beanClass != null) {
        Jedis jedis = POOL.getResource();
        Map map1 = (Map) JSONObject.fromObject(jedis.get(key));
        Set set = map1.keySet();
        Iterator ite = set.iterator();
        Map<String, Object> maps = new HashMap<String, Object>();
        while (ite.hasNext()) {
            String key1 = (String) ite.next();
            JSONObject jsonObject = JSONObject.fromObject(map1.get(key1));
            Object object = JSONObject.toBean(jsonObject, beanClass);
            maps.put(key1, object);
        }
        return maps;
    }
    return null;
}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值