Spring 融合Redi使用Jedis客户端操作
● 如何使用Spring 融合Redis 把业务处理层加入Redis缓存中
1,Spring 融合Redis 单机版《XML》配置整合
Spring 融合Redis 单机版配置 junit测试
/**
* 测试Spring整合Redis单机版测试
*
*/
@Test
public void testSpringJedisSingle () {
//初始化一个applicationContext
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(“classpath:spring/applicationContext-*.xml”);
//创建时实列
JedisPool pool = (JedisPool) applicationContext.getBean(“redisClient”);
//从pool中获取Redis对象
Jedis jedis = pool.getResource();
String string = jedis.get(“key1”);
System.out.println(string);
//关闭资源
jedis.close();
pool.close();
}
}
Spring 融合Redis 集群版《XML》配置整合
Spring 融合Redis 集群版配置 junit测试
//集群版Redis和Spring测试
@Test
public void testSpringJedisCluster () {
//初始化一个applicationContext
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(“classpath:spring/applicationContext-*.xml”);
//创建时实列
JedisCluster jedisCluster = (JedisCluster) applicationContext.getBean(“redisClient”);
String string = jedisCluster.get(“key1”);
System.out.println(string);
jedisCluster.close();
}
}
2,如何使用Spring 融合Redis 整合Dao层(工具类)
通过接口方式实现 将接口注入到业务逻辑处理层
一个是适应于单机版
一个是适应于集群版
看你业务需要什么时候用单机版什么时候用集群版 (只用在整合集群部署的时候启动集群版)
(部署在集群版操作在单机版)
Redis接口的配置(常用的操作方法)
public interface JedisClient {
String get(String key);
String set (String key,String value);
//添加一个Hash
String hget(String hkey,String key);
long hset(String hkey,String key,String value);
//自增长的一个方法
long incr(String key);
//设置key的有效时间 expire 的过期时间
long expire(String key ,int second);
//ttl看key是否已经过期
long ttl(String key);
//删除key
long del(String key);
//删除一个Hashkey
long hdel(String hkey,String key);
注意 这里的操作方法和Redis里面的一直(通过代码操作Redis)
}
Redis单机版接口实现类的配置(工具类)
public class JedisClientSingle implements JedisClient{
//需要注入一个单机版JedisPool 看jedis配置文件
@Autowired
private JedisPool jedisPool;
@Override
public String get(String key) {
//取出jedis
Jedis jedis = jedisPool.getResource();
String string = jedis.get(key);
//关闭资源
jedis.close();
return string;
}
@Override
public String set(String key, String value) {
//取出jedis
Jedis jedis = jedisPool.getResource();
String string = jedis.set(key, value);
jedis.close();
return string;
}
@Override
public String hget(String hkey, String key) {
//取出jedis
Jedis jedis = jedisPool.getResource();
String string = jedis.hget(hkey,key);
jedis.close();
return string;
}
@Override
public long hset(String hkey, String key, String value) {
//取出jedis
Jedis jedis = jedisPool.getResource();
Long result = jedis.hset(hkey, key,value);
jedis.close();
return result;
}
@Override
public long incr(String key) {
//取出jedis
Jedis jedis = jedisPool.getResource();
Long result = jedis.incr(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 jedis = jedisPool.getResource();
Long result = jedis.ttl(key);
jedis.close();
return result;
}
@Override
public long del(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.del(key);
jedis.close();
return result;
}
@Override
public long hdel(String hkey, String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hdel(hkey, key);
jedis.close();
return result;
}
}
Redis集群版接口实现类的配置(工具类)
public class JedisClientCluster implements JedisClient {
//注入一个集群JedisCluster
@Autowired
private 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);
}
}