Redis集群的配置
java代码
public class RedisService {
// 登录校验信息的key
public static final String DPM_LOGIN_LOGININFO_KEY = "DPM_LOGIN_LOGININFO_";
// Jedis连接池
private static ShardedJedisPool jedisPool;
/**
* 构建redis连接池
*
* @param ip
* @param port
* @return JedisPool
*/
public static ShardedJedisPool getPool() {
if (jedisPool == null) {
JedisPoolConfig config = new JedisPoolConfig();
//最大连接数
config.setMaxTotal(1024);
//对象最大空闲连接数
config.setMaxIdle(200);
//连接的最大等待毫秒数
config.setMaxWaitMillis(1000);
//连接测试可用
config.setTestOnBorrow(true);
//返回连接池测试可用
config.setTestOnReturn(true);
String host = "192.168.68.249";
int port = 6379;
List<JedisShardInfo> jdsInfoList =new ArrayList<JedisShardInfo>();
JedisShardInfo info = new JedisShardInfo(host, port);
info.setPassword("123456");
jdsInfoList.add(info);
jedisPool =new ShardedJedisPool(config, jdsInfoList);
}
return jedisPool;
}
/**
* get操作
*/
public String get(final String key){
ShardedJedis shardedJedis = null;
jedisPool=getPool();
try {
// 获取连接
shardedJedis = jedisPool.getResource();
// 获取缓存数据
return shardedJedis.get(key);
} finally {
if(null != shardedJedis){
// 将有效的连接返回到连接池
shardedJedis.close();
}
}
}
/**
* 设置存活时间
*/
public Long expire(String key,int seconds) {
ShardedJedis shardedJedis = null;
try {
// 获取连接
shardedJedis = jedisPool.getResource();
// 设置生存时间
return shardedJedis.expire(key, seconds);
} finally {
if(null != shardedJedis){
// 将有效的连接返回到连接池
shardedJedis.close();
}
}
}
/**
* setter
*/
public void setJedisPool(ShardedJedisPool jedisPool) {
this.jedisPool = jedisPool;
}
}
依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.6.0</version>
</dependency>
spring配置(此代码没有使用读取外部文件,可不用这段配置)
<!-- 单点登录的redis -->
<!-- jedis连接池配置信息 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="${redis.maxTotal}"></property>
<property name="maxIdle" value="${redis.maxIdle}"></property>
<property name="maxWaitMillis" value="${redis.maxWaitMillis}"></property>
<property name="testOnBorrow" value="${redis.testOnBorrow}"></property>
<property name="testOnReturn" value="${redis.testOnReturn}"></property>
</bean>
<bean id="loginJedisPool" class="redis.clients.jedis.ShardedJedisPool">
<!-- 连接池的配置 -->
<constructor-arg index="0" ref="jedisPoolConfig" />
<!-- 集群信息 -->
<constructor-arg index="1">
<list>
<!-- 第一个节点 -->
<bean class="redis.clients.jedis.JedisShardInfo">
<constructor-arg index="0" value="${loginRedis.ip}" />
<constructor-arg index="1" value="${loginRedis.port}" />
<constructor-arg index="2" value="node1" />
<property name="password" value="${loginRedis.pass}" />
</bean>
</list>
</constructor-arg>
</bean>
<bean id="loginRedisService" class="com.deppon.dpm.module.common.server.service.impl.RedisService">
<property name="jedisPool" ref="loginJedisPool" />
</bean>
<!-- 单点登录的redis end-->
spring-config.properties的redis参数配置(没使用spring.xml的配置就可不使用此配置):
3、spring-config.properties的redis参数配置:
loginRedis.ip=192.168.68.249
loginRedis.port=6379
loginRedis.pass=123456
#最大连接数
redis.maxTotal=1024
#最大空闲连接数
redis.maxIdle=200
#获取连接的最大等待毫秒数
redis.maxWaitMillis=1000
#获取连接测试可用
redis.testOnBorrow=true
#返回连接池测试可用
redis.testOnReturn=true