一、pom加入包
<!--json -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
<!--redis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<!-- spring-data-redis 依赖-->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.7.1.RELEASE</version>
</dependency>
二、创建一个interface:
package com.mvc.util;
import java.util.List;
public interface IRedis {
String set(String key,String value);
String get(String key);
Boolean exists(String key);
Long expire(String key,int seconds);
Long ttl(String key);
Long incr(String key);
String hget(String key,String field);
Long hset(String key, String field, String value);
Long hdel(String key,String... field);
Boolean hexistes(String key,String field);
List<String> hvals(String key);
Long del(String key);
}
三、连接集群:创建class,继承接口:
package com.mvc.util;
import java.util.List;
import redis.clients.jedis.JedisCluster;
public class Cluster implements IRedis {
private JedisCluster jedisCluster;
public JedisCluster getJedisCluster() {
return jedisCluster;
}
public void setJedisCluster(JedisCluster jedisCluster) {
this.jedisCluster = jedisCluster;
}
@Override
public String set(String key, String value) {
// TODO Auto-generated method stub
return jedisCluster.set(key, value);
}
@Override
public String get(String key) {
// TODO Auto-generated method stub
return jedisCluster.get(key);
}
@Override
public Boolean exists(String key) {
// TODO Auto-generated method stub
return jedisCluster.exists(key);
}
@Override
public Long expire(String key, int seconds) {
// TODO Auto-generated method stub
return jedisCluster.expire(key, seconds);
}
@Override
public Long ttl(String key) {
// TODO Auto-generated method stub
return jedisCluster.ttl(key);
}
@Override
public Long incr(String key) {
// TODO Auto-generated method stub
return jedisCluster.incr(key);
}
@Override
public String hget(String key, String field) {
// TODO Auto-generated method stub
return jedisCluster.hget(key, field);
}
@Override
public Long hset(String key, String field, String value) {
// TODO Auto-generated method stub
return jedisCluster.hset(key, field, value);
}
@Override
public Long hdel(String key, String... field) {
// TODO Auto-generated method stub
return jedisCluster.hdel(key, field);
}
@Override
public Boolean hexistes(String key, String field) {
// TODO Auto-generated method stub
return jedisCluster.hexists(key, field);
}
@Override
public List<String> hvals(String key) {
// TODO Auto-generated method stub
return jedisCluster.hvals(key);
}
@Override
public Long del(String key) {
// TODO Auto-generated method stub
return jedisCluster.del(key);
}
}
四、在Spring xml文件,进行配置:
<bean id="cluster" class="com.mvc.util.Cluster">
<property name="JedisCluster" ref="jedisCluster"/>
</bean>
<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
<constructor-arg name="nodes">
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="127.0.0.1"/>
<constructor-arg name="port" value="6379"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="127.0.0.1"/>
<constructor-arg name="port" value="6380"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="127.0.0.1"/>
<constructor-arg name="port" value="6381"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="127.0.0.1"/>
<constructor-arg name="port" value="6382"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="127.0.0.1"/>
<constructor-arg name="port" value="6383"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="127.0.0.1"/>
<constructor-arg name="port" value="6384"/>
</bean>
</set>
</constructor-arg>
</bean>
五、在service层使用,查询时,先从redis中查,如果有,直接返回,没有从数据库中查,将查到的结果放到redis中
单机版(只有Spring xml文件加入的内容和Cluster类不一样)
Cluster类内容改成
package com.mvc.util;
import java.util.List;
import redis.clients.jedis.JedisCluster;
public class Cluster implements IRedis {
private JedisCluster jedisCluster;
public JedisCluster getJedisCluster() {
return jedisCluster;
}
public void setJedisCluster(JedisCluster jedisCluster) {
this.jedisCluster = jedisCluster;
}
@Override
public String set(String key, String value) {
// TODO Auto-generated method stub
return jedisCluster.set(key, value);
}
@Override
public String get(String key) {
// TODO Auto-generated method stub
return jedisCluster.get(key);
}
@Override
public Boolean exists(String key) {
// TODO Auto-generated method stub
return jedisCluster.exists(key);
}
@Override
public Long expire(String key, int seconds) {
// TODO Auto-generated method stub
return jedisCluster.expire(key, seconds);
}
@Override
public Long ttl(String key) {
// TODO Auto-generated method stub
return jedisCluster.ttl(key);
}
@Override
public Long incr(String key) {
// TODO Auto-generated method stub
return jedisCluster.incr(key);
}
@Override
public String hget(String key, String field) {
// TODO Auto-generated method stub
return jedisCluster.hget(key, field);
}
@Override
public Long hset(String key, String field, String value) {
// TODO Auto-generated method stub
return jedisCluster.hset(key, field, value);
}
@Override
public Long hdel(String key, String... field) {
// TODO Auto-generated method stub
return jedisCluster.hdel(key, field);
}
@Override
public Boolean hexistes(String key, String field) {
// TODO Auto-generated method stub
return jedisCluster.hexists(key, field);
}
@Override
public List<String> hvals(String key) {
// TODO Auto-generated method stub
return jedisCluster.hvals(key);
}
@Override
public Long del(String key) {
// TODO Auto-generated method stub
return jedisCluster.del(key);
}
}
Spring xml文件加入依赖改成
<bean id="redis" class="com.aynu.redis.imp.Redis">
<property name="jedispool" ref="jedispool"/>
</bean>
<bean id="jedispool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.146.128"/>
<constructor-arg name="port" value="6379"/>
</bean>