- redis数据源接入
- redis缓存
- 用户登录标识缓存
- 访问接口权限拦截
redis数据源接入
redis.properties
redis.host=127.0.0.1
redis.port=6379
redis.timeout=50
redis.password=123456
spring-mvc
<context:property-placeholder location="classpath:redis.properties"/>
<context:component-scan base-package="arthur.test.redis"></context:component-scan>
<!-- redis连接池配置 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxActive" value="500" />
<property name="maxIdle" value="8" />
<property name="maxWait" value="10000" />
<property name="testOnBorrow" value="true"/>
<property name="testOnReturn" value="true"/>
<property name="testWhileIdle" value="true"/>
</bean>
<bean id="jedis.shardInfoMain" class="redis.clients.jedis.JedisShardInfo">
<constructor-arg name="host" value="${redis.host}" />
<constructor-arg name="port" value="${redis.port}" />
<constructor-arg name="timeout" value="${redis.timeout}" />
<constructor-arg name="weight" value="1" />
<property name="password" value="${redis.password}"></property>
</bean>
<!-- redis配置 -->
<bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool" scope="singleton">
<constructor-arg index="0" ref="jedisPoolConfig" />
<constructor-arg index="1">
<list>
<ref bean="jedis.shardInfoMain" />
</list>
</constructor-arg>
</bean>
RedisDataSource
import redis.clients.jedis.ShardedJedis;
/**
* @Author:Arthur Han
* @Description:
* @CreateDate:2017/3/318:15
* @Modified By:
*/
public interface RedisDataSource {
ShardedJedis getRedisClient();
void returnResource(ShardedJedis shardedJedis);
void returnResource(ShardedJedis shardedJedis, boolean broken);
}
RedisDataSourceImpl
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
import arthur.test.redis.RedisDataSource;
/**
* @Author:Arthur Han
* @Description:
* @CreateDate:2017/3/318:16
* @Modified By:
*/
@Repository("redisDataSource")
public class RedisDataSourceImpl implements RedisDataSource {
@Autowired
private ShardedJedisPool shardedJedisPool;
public ShardedJedis getRedisClient() {
try {
ShardedJedis shardJedis = shardedJedisPool.getResource();
return shardJedis;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public void returnResource(ShardedJedis shardedJedis) {
shardedJedisPool.returnResource(shardedJedis);
}
public void returnResource(ShardedJedis shardedJedis, boolean broken) {
if (broken) {
shardedJedisPool.returnBrokenResource(shardedJedis);
} else {
shardedJedisPool.returnResource(shardedJedis);
}
}
}