Redis集群搭建以及Spring整合

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);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值