栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

redis工具类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

redis工具类

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

import net.sf.json.JSONSerializer;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
import redis.clients.jedis.exceptions.JedisException;


public class RedisUtil { 
	private static Log log = LogFactory.getLog(RedisUtil.class);

	private Integer maxActive = 500;
	private Integer maxIdle = 1000;
	private Integer maxWait = 60;
	private String address = "127.0.0.1:6379";
	private ShardedJedisPool pool;

	
	public void init() {
		JedisPoolConfig config = new JedisPoolConfig();
		config.setMaxActive(maxActive);
		config.setMaxIdle(maxIdle);
		config.setMaxWait(maxWait);
		config.setTestonBorrow(false); 
		
		List list = new ArrayList();
		String[] addressArr = address.split(",");
		for (String str : addressArr) {
			list.add(new JedisShardInfo(str.split(":")[0], Integer.parseInt(str
					.split(":")[1])));
		}
		pool = new ShardedJedisPool(config, list);
	}

	
	public void destory() {
		pool.destroy();
	}
	
	
	public long del(String key) {
		ShardedJedis shardedJedis = null;
		long ret = 0l;
		try {
			shardedJedis = pool.getResource(); 
			ret = shardedJedis.del(key);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
		return ret;
	}

	
	public long hdel(String key,String... fields) {
		
		ShardedJedis shardedJedis = null;
		long ret = 0l;
		try {
			shardedJedis = pool.getResource();
			ret = shardedJedis.hdel(key, fields);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
		return ret;
	}
	
	
	public void setTSUser(String key, int seconds, TSUser tsUser) {
		ShardedJedis shardedJedis = null;
		try {
			shardedJedis = pool.getResource();
			String userString = "";
			if(tsUser!=null){
			   //以下代码防止懒加载或无限循环问题
		       if(tsUser.getDefaultOrg()!=null){
		    	   tsUser.getDefaultOrg().setParentOrg(null);
		    	   tsUser.getDefaultOrg().setSubOrgs(null);
		       }
		       if(tsUser.getTmEmployee()!=null&&tsUser.getTmEmployee().getTmOrg()!=null){
		    	   tsUser.getTmEmployee().getTmOrg().setParentOrg(null);
		    	   tsUser.getTmEmployee().getTmOrg().setSubOrgs(null);
		    	   tsUser.getTmEmployee().setTmPosition(null);
		       }
		        tsUser.setOplistSet(null);
		        tsUser.setTSDepart(null);
		     
				String json = "";//JSONSerializer.toJSON(tsUser).toString();
				json= JSONObject.toJSonString(tsUser);
				userString =  json.toString();
			} 
			shardedJedis.setex(key, seconds, userString);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
	}
	
	
	public TSUser getTSUser(String key) {
		ShardedJedis shardedJedis = null;
		String value = null;
		TSUser tsUser =  null;
		try {
			shardedJedis = pool.getResource();
			value = shardedJedis.get(key); 
//		    JSonObject userJson = JSONObject.parseObject(value);
//			tsUser = JSON.toJavaObject(userJson,TSUser.class);
			tsUser = JSONObject.parseObject(value,TSUser.class);

			//刷新token过期时间
			expire(key,30*60);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
		return tsUser;
	}
	
	
	
	
	public long rpush(String key, String string) {
		ShardedJedis shardedJedis = null;
		long ret = 0l;
		try {
			shardedJedis = pool.getResource();
			ret = shardedJedis.rpush(key, string); 
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
		return ret;
	}

	
	public List lrange(String key, long start, long end) {
		ShardedJedis shardedJedis = null;
		List ret  = null;
		try {
			shardedJedis = pool.getResource();
			ret = shardedJedis.lrange(key, start, end);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
		return ret;
	}

	
	public void hset(String key, String field, String value) {
		ShardedJedis shardedJedis = null;
		try {
			shardedJedis = pool.getResource();
			shardedJedis.hset(key, field, value);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
	}

	
	public void set(String key, String value) {
		ShardedJedis shardedJedis = null;
		try {
			shardedJedis = pool.getResource();
			shardedJedis.set(key, value);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
	}
	
	
	public void set(byte [] key, byte [] value) {
		ShardedJedis shardedJedis = null;
		try {
			shardedJedis = pool.getResource();
			shardedJedis.set(key, value);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
	}
	
	
	public byte[] get(byte[] key) {
		ShardedJedis shardedJedis = null;
		byte[] value = null;
		try {
			shardedJedis = pool.getResource();
			value = shardedJedis.get(key);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
		return value;
	}

	
	public String get(String key) {
		ShardedJedis shardedJedis = null;
		String value = null;
		try {
			shardedJedis = pool.getResource();
			value = shardedJedis.get(key);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
		return value;
	}

	
	public void hmset(String key, Map map) {
		ShardedJedis shardedJedis = null;
		try {
			shardedJedis = pool.getResource();
			shardedJedis.hmset(key, map);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
	}

	
	public void setex(String key, int seconds, String value) {
		ShardedJedis shardedJedis = null;
		try {
			shardedJedis = pool.getResource();
			shardedJedis.setex(key, seconds, value);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
	}
	
	
	public void expire(byte[] key, int seconds) {
		ShardedJedis shardedJedis = null;
		try {
			shardedJedis = pool.getResource();
			shardedJedis.expire(key, seconds);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
	}

	
	public void expire(String key, int seconds) {
		ShardedJedis shardedJedis = null;
		try {
			shardedJedis = pool.getResource();
			shardedJedis.expire(key, seconds);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
	}

	
	public boolean exists(String key) {
		ShardedJedis shardedJedis = null;
		boolean bool = false;
		try {
			shardedJedis = pool.getResource();
			bool = shardedJedis.exists(key);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
		return bool;
	}

	
	public String type(String key) {
		ShardedJedis shardedJedis = null;
		String type =null;
		try {
			shardedJedis = pool.getResource();
			type = shardedJedis.type(key);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
		return type;
	}

	
	public String hget(String key, String field) {
		ShardedJedis shardedJedis = null;
		String value =null;
		try {
			shardedJedis = pool.getResource();
			value = shardedJedis.hget(key, field);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
		return value;
	}

	
	public Map hgetAll(String key) {
		ShardedJedis shardedJedis = null;
		Map map =null;
		try {
			shardedJedis = pool.getResource();
			map = shardedJedis.hgetAll(key);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
		return map;
	}

	
	public Set smembers(String key) {
		ShardedJedis shardedJedis = null;
		Set set =null;
		try {
			shardedJedis = pool.getResource();
			set = shardedJedis.smembers(key);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
		return set;
	}

	
	public void delSetObj(String key, String field) {
		ShardedJedis shardedJedis = null;
		try {
			shardedJedis = pool.getResource();
			shardedJedis.srem(key, field);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
	}

	
	public boolean isNotField(String key, String field) {
		ShardedJedis shardedJedis = null;
		boolean bool = false;
		try {
			shardedJedis = pool.getResource();
			bool = shardedJedis.sismember(key, field);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
		return bool;
	}

	
	public void append(String key, String value) {
		ShardedJedis shardedJedis = null;
		try {
			shardedJedis = pool.getResource();
			shardedJedis.append(key, value);
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
	}
	
	public Set getAllKeys(){
		ShardedJedis shardedJedis = null;
		Set keys = new HashSet();
		try {
			shardedJedis = pool.getResource();
			Collection shards = shardedJedis.getAllShards();
			if(shards != null && !shards.isEmpty()) {
				for (Jedis shard : shards) {
					keys.addAll(shard.keys("*"));
				}
			}
			return keys;
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
	}
	
	public void flushAll(){
		ShardedJedis shardedJedis = null;
		try {
			shardedJedis = pool.getResource();
			Collection shards = shardedJedis.getAllShards();
			if(shards != null && !shards.isEmpty()) {
				for (Jedis shard : shards) {
					shard.flushAll();
				}
			}
		} catch (Exception e) {
			pool.returnBrokenResource(shardedJedis);
			shardedJedis = null;
			log.error(e);
			throw new JedisException(e);
		}finally{
			if (shardedJedis != null) { 
				pool.returnResource(shardedJedis);
			}
		}
	}

	public int getMaxActive() {
		return maxActive;
	}

	public void setMaxActive(int maxActive) {
		this.maxActive = maxActive;
	}
	public Integer getMaxIdle() {
		return maxIdle;
	}
	public void setMaxIdle(Integer maxIdle) {
		this.maxIdle = maxIdle;
	}
	public Integer getMaxWait() {
		return maxWait;
	}
	public void setMaxWait(Integer maxWait) {
		this.maxWait = maxWait;
	}
	public void setMaxActive(Integer maxActive) {
		this.maxActive = maxActive;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	
	public static void main(String[] args){
		RedisUtil r = new RedisUtil();
		r.init();
		Set keys = r.getAllKeys();
		System.out.println(keys); 
//		r.flushAll();
//		System.out.println(keys);
		TSUser t =  r.getTSUser("eyJhbGciOiJIUzI1NiIsImVuY3J5cHRpb24iOiJIUzI1NiIsInR5cCI6IkpXVCIsInR5cGUiOiJKV1QifQ.eyJleHAiOjE2MzUzMjIxMjIsIlRpbWUiOjE2MzUyMzU3MjIyNTAsInVzZXJDb2RlIjoiYWRtaW4ifQ.ra9t1TyuiHjsuV58MGkX6SKY8hIxy-xS5QGYUfO--iA");
//		r.get("eyJhbGciOiJIUzI1NiIsImVuY3J5cHRpb24iOiJIUzI1NiIsInR5cCI6IkpXVCIsInR5cGUiOiJKV1QifQ.eyJleHAiOjE2MzUzMTY5NzcsIlRpbWUiOjE2MzUyMzA1Nzc2NTksInVzZXJDb2RlIjoiYWRtaW4ifQ.wOQ1eC6q2djSMG4CuNoywoua6FLM--ZOvE_ATr5lix0");
//		System.out.println(r.get("eyJhbGciOiJIUzI1NiIsImVuY3J5cHRpb24iOiJIUzI1NiIsInR5cCI6IkpXVCIsInR5cGUiOiJKV1QifQ.eyJleHAiOjE2MzUzMTk0MDMsIlRpbWUiOjE2MzUyMzMwMDMyMDIsInVzZXJDb2RlIjoiYWRtaW4ifQ.edOlNofAKIJM5osUQS0_B8fe1DD9K_mXMHy-J6WS6xA"));
//		r.set("aaaa", "aaaaa");
//		System.out.println(r.hgetAll("com.ewin.erp.basebus.entity.BillInfo"));
	}
}

里面的TsUser需要删除,没有意义的对象

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785759.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号