spring整合单机版redis
1 在applicationContext-service.xml配置文件中配置JedisPool
2 使用
定义一个java接口和JedisClientSingle实现类,实现类中注入jedisPool
JedisClient.java
public interface JedisClient {
String set(String key, String value);
String get(String key);
// hash操作
Long hset(String key, String item, String value);
String hget(String key, String item);
Long hdel(String key, String item);
// 自增
Long incr(String key);
Long decr(String key);
// 时间
Long expire(String key, int second);
Long ttl(String key);
}
JedisClientSingle.java
实现类
public class JedisClientSingle implements JedisClient {
@Autowired
public JedisPool jedisPool;
@Override
public String set(String key, String value) {
Jedis jedis = jedisPool.getResource();
String result = jedis.set(key, value);
jedis.close();
return result;
}
@Override
public String get(String key) {
Jedis jedis = jedisPool.getResource();
String result = jedis.get(key);
jedis.close();
return result;
}
@Override
public Long hset(String key, String item, String value) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hset(key, item, value);
jedis.close();
return result;
}
@Override
public String hget(String key, String item) {
Jedis jedis = jedisPool.getResource();
String result = jedis.hget(key, item);
jedis.close();
return result;
}
@Override
public Long hdel(String key, String item) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hdel(key, item);
jedis.close();
return result;
}
@Override
public Long incr(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.incr(key);
jedis.close();
return result;
}
@Override
public Long decr(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.decr(key);
jedis.close();
return result;
}
@Override
public Long expire(String key, int second) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.expire(key, second);
jedis.close();
return result;
}
@Override
public Long ttl(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.ttl(key);
return result;
}
}
3 在applicationContext-service.xml配置文件中,添加对 JedisClientSingle
的扫描。
spring中整合 redis集群
1 在applicationContext-service.xml配置文件中配置JedisCluster。
2 实现JedisClientCluster,在该类中注入jedisCluster。
public class JedisClientCluster implements JedisClient {
@Autowired
public JedisCluster jedisCluster;
@Override
public String set(String key, String value) {
return jedisCluster.set(key, value);
}
@Override
public String get(String key) {
return jedisCluster.get(key);
}
@Override
public Long hset(String key, String item, String value) {
return jedisCluster.hset(key, item, value);
}
@Override
public String hget(String key, String item) {
return jedisCluster.hget(key, item);
}
@Override
public Long hdel(String key, String item) {
return jedisCluster.hdel(key, item);
}
@Override
public Long incr(String key) {
return jedisCluster.incr(key);
}
@Override
public Long decr(String key) {
return jedisCluster.decr(key);
}
@Override
public Long expire(String key, int second) {
return jedisCluster.expire(key, second);
}
@Override
public Long ttl(String key) {
return jedisCluster.ttl(key);
}
}
3 在applicationContext-service.xml配置文件中,添加对 JedisClientSingle
的扫描。
注意:采用这种方法配置时,redis单机版和集群版不能共存。一般测试环境使用单机版,生成环境使用集群版。