zoukankan      html  css  js  c++  java
  • 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());
        }
        
      }
      
      
    
    }
  • 相关阅读:
    Shell编程——基于IBM培训教程的总结
    flex上下固定中间滚动布局
    exe 转服务
    itextcsharp使用
    devices detect
    [转]Java api 全集 【API JDK1.6中文版】
    JavaScript 项目优化总结
    服务程序打包
    knockoutjs
    C#压缩《收藏》
  • 原文地址:https://www.cnblogs.com/sytfyf/p/4461025.html
Copyright © 2011-2022 走看看