使用管道操作redis

版权声明: https://blog.csdn.net/sd1209286540/article/details/89644203

1.利用管道获取数据 

/**
	 * 获取redis存的所有数据
	 *@return
	 */
    public static JSONArray getAllEntity(){
    	JSONArray array = new JSONArray();
    	
    	Jedis jedis = getJedisInstance();
    	jedis.select(BaseCodes.REDIS_LIBRARY);
    	Pipeline pip = jedis.pipelined();
    	try {
			Set<String> keys = jedis.keys("*");
    		if(null!=keys && keys.size()>0){
                //获取管道
                Map<String,Response<String>> responses = new HashMap<String,Response<String>>(keys.size());
                for(String key : keys) {
                    responses.put(key, pip.get(key));
                }
                pip.sync();
                for(String k : responses.keySet()) {
                	array.add(JSONObject.parse(responses.get(k).get()));
                }
            }
		} catch (Exception e) {
			e.printStackTrace();
			RedisUtil.returnBrokenResource(jedis);
		}finally{
			RedisUtil.returnResource(jedis);
		}
    	return array;
    }

2.利用管道更新redis

/**
     * 根据键删除对象
     *@version 2018年10月17日
     *@param keys
     */
    public static void delectEntity(List<String> keys){
    	Jedis jedis = getJedisInstance();
    	jedis.select(BaseCodes.REDIS_LIBRARY);
    	Pipeline pip = jedis.pipelined();
    	try {
			for(String key : keys){
				pip.del(key);
			}
			pip.sync();
		} catch (Exception e) {
			e.printStackTrace();
			RedisUtil.returnBrokenResource(jedis);
		}finally{
			RedisUtil.returnResource(jedis);
		}
    }
    
    /**
     * 添加user
     *@Description:TODO
     *@version 2018年10月23日
     *@param list
     */
    public static void addUserEntity(List<User> list){
    	Jedis jedis = getJedisInstance();
    	jedis.select(BaseCodes.REDIS_LIBRARY2);
    	Pipeline pip = jedis.pipelined();
    	try {
			if(null != list && !list.isEmpty()){
				list.stream().forEach(user -> {
					pip.set(user.getUserName()+"-"+user.getUserId(), JSONObject.toJSON(user).toString());
				});
			}
			pip.sync();//同步
		}  catch (Exception e) {
			e.printStackTrace();
			RedisUtil.returnBrokenResource(jedis);
		}finally{
			RedisUtil.returnResource(jedis);
		}
    }
    
    /**
     * 根据key获取用户信息,如果没有传入key则默认获取所有用户
     *@Description:TODO
     *@version 2018年10月23日
     *@param keys
     *@return
     */
    public static List<User> getUserList(List<String> keys){
    	List<User> list = new ArrayList<User>();
    	JSONArray array = new JSONArray();
    	Jedis jedis = getJedisInstance();
    	jedis.select(BaseCodes.REDIS_LIBRARY2);
    	Pipeline pip = jedis.pipelined();
    	try {
    		if(null != keys && !keys.isEmpty()){
    			Map<String,Response<String>> responses = new HashMap<String,Response<String>>(keys.size());
    			for(String key : keys) {
    			    responses.put(key, pip.get(key));
    			}
    			pip.sync();
                for(String k : responses.keySet()) {
                	array.add(JSONObject.parse(responses.get(k).get()));
                }
    		}else{
    			Set<String> keySet = jedis.keys("*");
    			if(null!=keySet && keySet.size()>0){
                    //获取管道
                    Map<String,Response<String>> responses = new HashMap<String,Response<String>>(keySet.size());
                    for(String key : keySet) {
                        responses.put(key, pip.get(key));
                    }
                    pip.sync();
                    for(String k : responses.keySet()) {
                    	array.add(JSONObject.parse(responses.get(k).get()));
                    }
                }
    		}
    		if(null != array && !array.isEmpty()){
    			list = JSONObject.parseArray(array.toJSONString(), User.class);
    		}
    	}  catch (Exception e) {
			e.printStackTrace();
			RedisUtil.returnBrokenResource(jedis);
		}finally{
			RedisUtil.returnResource(jedis);
		}
		return list;
    }

猜你喜欢

转载自blog.csdn.net/sd1209286540/article/details/89644203