Redis缓存系统-Java-Jedis操作Redis,基本操作以及 实现对象保存

 

源代码下载:   http://download.csdn.net/detail/jiangtao_st/7623113

1、Maven配置

<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>2.5.0</version>
</dependency>
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.1.41</version>
</dependency></span>

2、Properties 配置文件

redis.pool.maxActive=  100

  redis.pool.maxIdle=  20

  redis.pool.maxWait=  3000

  redis.ip=  localhost

  redis.port=  6379

3、代码具体实现的Client

/**
 * 
 * <p>
 * 	Redis客户端访问
 * </p>
 * 
 * @author 卓轩
 * @创建时间:2014年7月11日
 * @version: V1.0
 */
public class RedisClient {
  
  public  static  JedisPool jedisPool; 
  
  static {
    
    
    ResourceBundle resourceBundle = ResourceBundle.getBundle("redis");
    int maxActive = Integer.parseInt(resourceBundle.getString("redis.pool.maxActive"));
    int maxIdle = Integer.parseInt(resourceBundle.getString("redis.pool.maxIdle"));
    int maxWait = Integer.parseInt(resourceBundle.getString("redis.pool.maxWait"));
    
    String ip = resourceBundle.getString("redis.ip");
    int port = Integer.parseInt(resourceBundle.getString("redis.port"));
    
    JedisPoolConfig config = new JedisPoolConfig();  
    
    config.setMaxTotal(maxActive);
    
    config.setMaxIdle(maxIdle);
    
    config.setMaxWaitMillis(maxWait);
    
    
    jedisPool = new JedisPool(config, ip, port); 
  }
  
  /**
   * 向缓存中设置字符串内容
   * @param key key
   * @param value value
   * @return
   * @throws Exception
   */
  public static boolean  set(String key,String value) throws Exception{
    Jedis jedis = null;
    try {
      jedis = jedisPool.getResource();
      jedis.set(key, value);
      return true;
    } catch (Exception e) {
      e.printStackTrace();
      return false;
    }finally{
      jedisPool.returnResource(jedis);
    }
  }
  
  /**
   * 向缓存中设置对象
   * @param key 
   * @param value
   * @return
   */
  public static boolean  set(String key,Object value){
    Jedis jedis = null;
    try {
      String objectJson = JSON.toJSONString(value);
      jedis = jedisPool.getResource();
      jedis.set(key, objectJson);
      return true;
    } catch (Exception e) {
      e.printStackTrace();
      return false;
    }finally{
      jedisPool.returnResource(jedis);
    }
  }
  
  /**
   * 删除缓存中得对象,根据key
   * @param key
   * @return
   */
  public static boolean del(String key){
    Jedis jedis = null;
    try {
      jedis = jedisPool.getResource();
      jedis.del(key);
      return true;
    } catch (Exception e) {
      e.printStackTrace();
      return false;
    }finally{
      jedisPool.returnResource(jedis);
    }
  }
  
  /**
   * 根据key 获取内容
   * @param key
   * @return
   */
  public static Object get(String key){
    Jedis jedis = null;
    try {
      jedis = jedisPool.getResource();
      Object value = jedis.get(key);
      return value;
    } catch (Exception e) {
      e.printStackTrace();
      return false;
    }finally{
      jedisPool.returnResource(jedis);
    }
  }
  

  /**
   * 根据key 获取对象
   * @param key
   * @return
   */
  public static <T> T get(String key,Class<T> clazz){
    Jedis jedis = null;
    try {
      jedis = jedisPool.getResource();
      String value = jedis.get(key);
      return JSON.parseObject(value, clazz);
    } catch (Exception e) {
      e.printStackTrace();
      return null;
    }finally{
      jedisPool.returnResource(jedis);
    }
  }


}

4、 单元测试、保存对象、写入对象

/**
 * 
 * <p>
 *  测试独立redis 客户端
 * </p>
 * 
 * @author 卓轩
 * @创建时间:2014年7月11日
 * @version: V1.0
 */
public class SimpleClient {
  
  @Test
  public void userCache(){
    
    
    UserDO zhuoxuan = new UserDO();
    zhuoxuan.setUserId(113445);
    zhuoxuan.setSex(1);
    zhuoxuan.setUname("卓轩");
    zhuoxuan.setUnick("zhuoxuan");
    zhuoxuan.setEmail("zhuoxuan@mogujie.com");
    
    boolean reusltCache = RedisClient.set("zhuoxuan", zhuoxuan);
    if (reusltCache) {
      System.out.println("向缓存中保存对象成功。");
    }else{
      System.out.println("向缓存中保存对象失败。");
    }
  }
  
  
  @Test
  public void getUserInfo(){
    
    UserDO zhuoxuan = RedisClient.get("zhuoxuan",UserDO.class);
    if(zhuoxuan != null){
      System.out.println("从缓存中获取的对象," + zhuoxuan.getUname() + "@" + zhuoxuan.getEmail());
    }
    
  }
  
  

}
原文地址:https://www.cnblogs.com/sytfyf/p/4461025.html