redis使用

pom.xml

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>1.6.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.4.2</version>
</dependency>


spring-context

<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
		<property name="maxTotal" value="${redis.pool.maxActive}" />
		<property name="maxIdle" value="${redis.pool.maxIdle}" />
		<property name="maxWaitMillis" value="${redis.pool.maxWait}" />
		<property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
</bean>
<bean id="jedisFactory"
		class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
		<property name="hostName" value="${redis.ip}" />
		<property name="port" value="${redis.port}" />
		<property name="poolConfig" ref="jedisPoolConfig" />
</bean>
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
		p:connection-factory-ref="jedisFactory" />

properties

#服务器IP
redis.ip=192.168.7.45
#服务器端口
redis.port=6379
#最大连接数
redis.pool.maxActive=1024
#最大空闲数
redis.pool.maxIdle=200
#最大建立连接等待时间
redis.pool.maxWait=1000
#指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
redis.pool.testOnBorrow=true

java

    @Resource
	private RedisTemplate<String, Object> redisTemplate;
	/**
	 * 向缓存增加一个对象存储
	 * @param key key
	 * @param subKey subKey
	 * @param object 存储的对象
	 * @param expireSeconds (针对key的)过期时间,单位秒
	 */
	public void putObject(String key,String subKey,Object object,int expireSeconds){
		logger.debug("putObject: KEY=" + key +" SUBKEY=" + subKey+" EXPIRESECONDS="+expireSeconds);
		redisTemplate.opsForHash().put(key, subKey, object);
		redisTemplate.expire(key, expireSeconds, TimeUnit.SECONDS);
	}
	/**
	 * 根据key和subKey获取一个对象
	 */
	public Object getObject(String key,String subKey){
		Object obj = null;
		if(redisTemplate.opsForHash().hasKey(key, subKey))
			obj = (Object) redisTemplate.opsForHash().get(key,subKey);
		logger.debug("getObject: KEY=" + key +" SUBKEY=" + subKey+ " RESULT="+(obj==null?"IS NULL":obj));
		return obj;
	}
	/**
	 * 根据key获取多个subkey对象的list
	 * @param key
	 * @return
	 */
	public List<Object> getObjects(String key){
		List<Object> objs = null;
		if(redisTemplate.hasKey(key)){
			List<Object> ret=new ArrayList<Object>();
			for(Object obj:redisTemplate.opsForHash().values(key)){
				ret.add(obj);
			}
			objs = ret;
		}
		logger.debug("getObjects: KEY=" + key +" RESULT "+(objs==null?"IS NULL":"SIZE ="+ objs.size()));
		return objs;
	}
	/**
	 * 清空key对应的所有对象
	 * @param key
	 */
	public void cleanObject(String key){
		logger.debug("cleanObject: KEY=" + key);
		redisTemplate.delete(key);
	}
	/**
	 * 根据key获取对应的对象个数
	 * @param key
	 * @return
	 */
	public Long size(String key){
		Long l = 0L;
		if(redisTemplate.hasKey(key))
			l = redisTemplate.opsForHash().size(key);
		logger.debug("size: KEY=" + key +" RESULT="+ l);
		return l;
	}


你可能感兴趣的:(redis使用)