interface
public interface JedisClient {
String get (String key);
String set (String key,String value);
String hget(String hkey,String key);
long hset(String hkey,String key,String value);
long incr(String key);
long expire(String key,int second );
long ttl(String key);
long del(String key);
long hdel(String hkey,String key);
}
单机版
/**
* 单机版redis
* @author Administrator
*
*/
public class JedisClientSingle implements JedisClient {
@Autowired
private JedisPool jedisPool;
@Override
public String get (String key) {
Jedis resource = jedisPool.getResource();
String string = resource.get(key);
resource.close();
return string;
}
@Override
public String set (String key, String value) {
Jedis resource = jedisPool.getResource();
String set = resource.set(key, value);
resource.close();
return set;
}
@Override
public String hget (String hkey, String key) {
Jedis resource = jedisPool.getResource();
String hget = resource.hget(hkey, key);
resource.close();
return hget;
}
@Override
public long hset (String hkey, String key, String value) {
Jedis resource = jedisPool.getResource();
Long hset = resource.hset(hkey, key, value);
resource.close();
return hset;
}
@Override
public long incr (String key) {
Jedis resource = jedisPool.getResource();
Long incr = resource.incr(key);
resource.close();
return incr;
}
@Override
public long expire (String key, int seconed) {
Jedis resource = jedisPool.getResource();
Long expire = resource.expire(key, seconed);
resource.close();
return expire;
}
@Override
public long ttl (String key) {
Jedis resource = jedisPool.getResource();
Long ttl = resource.ttl(key);
resource.close();
return ttl;
}
@Override
public long del (String key) {
Jedis resource = jedisPool.getResource();
Long del = resource.del(key);
resource.close();
return del;
}
@Override
public long hdel (String hkey, String key) {
Jedis resource = jedisPool.getResource();
Long del = resource.hdel(hkey, key);
resource.close();
return del;
}
}
集群版
public class JedisClientCluster implements JedisClient {
@Autowired redis.clients.jedis.JedisCluster jedisCluster;
@Override
public String get (String key) {
return jedisCluster.get(key);
}
@Override
public String set (String key, String value) {
return jedisCluster.set(key, value);
}
@Override
public String hget (String hkey, String key) {
return jedisCluster.hget(hkey, key);
}
@Override
public long hset (String hkey, String key, String value) {
return jedisCluster.hset(hkey, key, value);
}
@Override
public long incr (String key) {
return jedisCluster.incr(key);
}
@Override
public long expire (String key, int second) {
return jedisCluster.expire(key, second);
}
@Override
public long ttl (String key) {
return jedisCluster.ttl(key);
}
@Override
public long del (String key) {
return jedisCluster.del(key);
}
@Override
public long hdel (String hkey, String key) {
return jedisCluster.hdel(hkey, key);
}
}
配置redis 连接池
<bean id ="jedisPoolConfig" class ="redis.clients.jedis.JedisPoolConfig" >
<property name ="maxTotal" value ="30" />
<property name ="maxIdle" value ="10" />
<property name ="numTestsPerEvictionRun" value ="1024" />
<property name ="timeBetweenEvictionRunsMillis" value ="30000" />
<property name ="minEvictableIdleTimeMillis" value ="1800000" />
<property name ="softMinEvictableIdleTimeMillis" value ="10000" />
<property name ="maxWaitMillis" value ="1500" />
<property name ="testOnBorrow" value ="true" />
<property name ="testWhileIdle" value ="true" />
<property name ="blockWhenExhausted" value ="false" />
</bean >
Spring bean配置(单机版)
<bean id ="JedisClientSingle" class ="redis.clients.jedis.JedisPool" >
<constructor-arg name ="host" value ="192.168.2.130" > </constructor-arg >
<constructor-arg name ="port" value ="6379" > </constructor-arg >
<constructor-arg name ="poolConfig" ref ="jedisPoolConfig" > </constructor-arg >
</bean >
<bean id ="JedisClient" class ="yourClasspath" >
</bean >
Spring bean配置(集群版)
<bean id ="jedisClient" class ="redis.clients.jedis.JedisCluster" >
//constructor-arg是构造方法 nodes 是redis节点列表
<constructor-arg name ="nodes" >
<set >
//此处注入nodes 类的构造方法值(需要一个IP地址和端口)
<bean class ="redis.clients.jedis.HostAndPort" >
<constructor-arg name ="host" value ="192.168.2.130" > </constructor-arg >
<constructor-arg name ="port" value ="7001" > </constructor-arg >
</bean >
<bean class ="redis.clients.jedis.HostAndPort" >
<constructor-arg name ="host" value ="192.168.2.130" > </constructor-arg >
<constructor-arg name ="port" value ="7002" > </constructor-arg >
</bean >
<bean class ="redis.clients.jedis.HostAndPort" >
<constructor-arg name ="host" value ="192.168.2.130" > </constructor-arg >
<constructor-arg name ="port" value ="7003" > </constructor-arg >
</bean >
<bean class ="redis.clients.jedis.HostAndPort" >
<constructor-arg name ="host" value ="192.168.2.130" > </constructor-arg >
<constructor-arg name ="port" value ="7004" > </constructor-arg >
</bean >
<bean class ="redis.clients.jedis.HostAndPort" >
<constructor-arg name ="host" value ="192.168.2.130" > </constructor-arg >
<constructor-arg name ="port" value ="7005" > </constructor-arg >
</bean >
<bean class ="redis.clients.jedis.HostAndPort" >
<constructor-arg name ="host" value ="192.168.2.130" > </constructor-arg >
<constructor-arg name ="port" value ="7006" > </constructor-arg >
</bean >
</set >
</constructor-arg >
<constructor-arg name ="poolConfig" ref ="jedisPoolConfig" > </constructor-arg > jedis 连接池配置
</bean >
<bean id ="jedisClientCluster" class ="redis.clients.jedis" >
</bean >
测试
/**
* spring 测试的单机版
*/
@Test
public void TestSpringjedisSingle (){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml" );
JedisPool jedisPool = (JedisPool) applicationContext.getBean("jedisClient" );
Jedis resource = jedisPool.getResource();
String string = resource.get("key1" );
System.out.println(string);
resource.close();
jedisPool.close();
}
/**
* spring 测试的集群版
*/
@Test
public void TestSpringjedisCluster (){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml" );
JedisCluster cluster = (JedisCluster) applicationContext.getBean("jedisClient" );
String string = cluster.get("key1" );
System.out.println(string+"...." );
cluster.close();
}