java CacheProxy 缓存工具类

本文介绍了在企业开发中如何利用CacheProxy作为缓存工具类,以提升服务性能,减少服务器资源消耗。该类主要应用于存储用户ID、短信验证码等数据,并依赖于jedis-2.5.3库进行缓存操作。同时,文章还提及了Spring-Redis的配置以实现缓存服务。
摘要由CSDN通过智能技术生成

在公司开发中,我们需要将用户id、短信验证码等信息缓存起来,方便快速使用,减少服务器资源占用。这里是公司开发的CacheProxy缓存代理工具类。

所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。


使用jar包:jedis-2.5.3 缓存服务工具类


1.缓存代理类CacheProxy

package com.yuanding.common.cache;

import com.yuanding.common.util.Constants;


/**
 * 
 * 缓存代理
 */
public class CacheProxy extends ShardedRedisProxy implements ICacheProxy {
	
	public String pop(int queueType) {
		String result = "";
		switch(queueType) {
		case Constants.SMS_TYPE:
			result = lpop(CacheConstant.SMS_MESSAGE_QUEUE);
			break;
		case Constants.EMAIL_TYPE:
			result = lpop(CacheConstant.EMAIL_MESSAGE_QUEUE);
			break;
		case Constants.INNER_LETTER_TYPE:
			result = lpop(CacheConstant.INNER_LETTER_MESSAGE_QUEUE);
			break;
		default:
			break;
		}
        return result;
        
	}

	public Long push(int queueType, String value) {
		Long result = null;
		switch(queueType) {
		case Constants.SMS_TYPE:
			result = rpush(CacheConstant.SMS_MESSAGE_QUEUE, value);
			break;
		case Constants.EMAIL_TYPE:
			result = rpush(CacheConstant.EMAIL_MESSAGE_QUEUE, value);
			break;
		case Constants.INNER_LETTER_TYPE:
			result = rpush(CacheConstant.INNER_LETTER_MESSAGE_QUEUE, value);
			break;
		default:
			break;
		}
        return result;
	}

}

2.缓存服务代理

package com.yuanding.common.cache;

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 redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;

/**
 * 
 * 本实现为分片Redis缓存服务代理
 */
public class ShardedRedisProxy implements IRedisProxy {

	/**
	 * 日志
	 */
	protected Log log = LogFactory.getLog(this.getClass());

	/**
	 * 缓存连接池
	 */
	private ShardedJedisPool shardedJedisPool;

	public Long append(String key, String value) {
		ShardedJedis shardedJedis = null;
		Long ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.append(key, value);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	public Long decr(String key) {
		ShardedJedis shardedJedis = null;
		Long ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.decr(key);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	public Long decrBy(String key, long integer) {
		ShardedJedis shardedJedis = null;
		Long ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.decrBy(key, integer);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	public Long del(String key) {
		ShardedJedis shardedJedis = null;
		Long ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.del(key);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public Boolean exists(String key) {
		ShardedJedis shardedJedis = null;
		Boolean ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.exists(key);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public Long expire(String key, int seconds) {
		ShardedJedis shardedJedis = null;
		Long ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.expire(key, seconds);
			return ret;
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public Long expireAt(String key, long unixTime) {
		ShardedJedis shardedJedis = null;
		Long ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.expireAt(key, unixTime);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public String get(String key) {
		ShardedJedis shardedJedis = null;
		String ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.get(key);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public String getSet(String key, String value) {
		ShardedJedis shardedJedis = null;
		String ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.getSet(key, value);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public String getrange(String key, long startOffset, long endOffset) {
		ShardedJedis shardedJedis = null;
		String ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.getrange(key, startOffset, endOffset);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public Long hdel(String key, String field) {
		ShardedJedis shardedJedis = null;
		Long ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.hdel(key, field);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public Boolean hexists(String key, String field) {
		ShardedJedis shardedJedis = null;
		Boolean ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.hexists(key, field);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public String hget(String key, String field) {
		ShardedJedis shardedJedis = null;
		String ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.hget(key, field);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public Map<String, String> hgetAll(String key) {
		ShardedJedis shardedJedis = null;
		Map<String, String> ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.hgetAll(key);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public Long hincrBy(String key, String field, long value) {
		ShardedJedis shardedJedis = null;
		Long ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.hincrBy(key, field, value);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public Set<String> hkeys(String key) {
		ShardedJedis shardedJedis = null;
		Set<String> ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.hkeys(key);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public Long hlen(String key) {
		ShardedJedis shardedJedis = null;
		Long ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.hlen(key);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public List<String> hmget(String key, String... fields) {
		ShardedJedis shardedJedis = null;
		List<String> ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.hmget(key, fields);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public String hmset(String key, Map<String, String> hash) {
		ShardedJedis shardedJedis = null;
		String ret = null;
		try {
			shardedJedis = shardedJedisPool.getResource();
			ret = shardedJedis.hmset(key, hash);
		} catch (Exception e) {
			log.error(this, e);
		} finally {
			shardedJedisPool.returnResource(shardedJedis);
		}
		return ret;
	}

	
	public Long hset(String key, String field, String value) {
		ShardedJedis shardedJedis = null;
		Long ret = null;
		try {
			shardedJedis 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值