1、pom.xml
redis.clients
jedis
2.7.2
2、包括单点和集群
<!-- 连接redis单机版 -->
<bean id="jedisClientPool" class="cn.itcast.common.jedis.JedisClientPool">
<property name="jedisPool" ref="jedisPool"></property>
</bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.25.129"/>
<constructor-arg name="port" value="6379"/>
</bean>
<!-- 连接redis集群 -->
<!-- <bean id="jedisClientCluster" class="cn.e3mall.common.jedis.JedisClientCluster">
<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="192.168.25.129"></constructor-arg>
<constructor-arg name="port" value="7001"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.129"></constructor-arg>
<constructor-arg name="port" value="7002"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.129"></constructor-arg>
<constructor-arg name="port" value="7003"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.162"></constructor-arg>
<constructor-arg name="port" value="7004"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.129"></constructor-arg>
<constructor-arg name="port" value="7005"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.129"></constructor-arg>
<constructor-arg name="port" value="7006"></constructor-arg>
</bean>
</set>
</constructor-arg>
</bean>-->
3、jedis封装的utils共三个文件、
1)package cn.itcast.common.jedis;
public interface JedisClient {
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);
Long hset(String key, String field, String value);
String hget(String key, String field);
Long hdel(String key, String... field);
}
2)
package cn.itcast.common.jedis;
//import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
public class JedisClientPool implements JedisClient {
//@Autowired
private JedisPool jedisPool;
public JedisPool getJedisPool() {
return jedisPool;
}
public void setJedisPool(JedisPool jedisPool) {
this.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 Boolean exists(String key) {
Jedis jedis = jedisPool.getResource();
Boolean result = jedis.exists(key);
jedis.close();
return result;
}
@Override
public Long expire(String key, int seconds) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.expire(key, seconds);
jedis.close();
return result;
}
@Override
public Long ttl(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.ttl(key);
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 hset(String key, String field, String value) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hset(key, field, value);
jedis.close();
return result;
}
@Override
public String hget(String key, String field) {
Jedis jedis = jedisPool.getResource();
String result = jedis.hget(key, field);
jedis.close();
return result;
}
@Override
public Long hdel(String key, String... field) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hdel(key, field);
jedis.close();
return result;
}
}
3)package cn.itcast.common.jedis;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.JedisCluster;
//import redis.clients.jedis.JedisCluster;
public class JedisClientCluster implements JedisClient {
//@Autowired
private JedisCluster jedisCluster;
public JedisCluster getJedisCluster() {
return jedisCluster;
}
public void setJedisCluster(JedisCluster jedisCluster) {
this.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 Boolean exists(String key) {
return jedisCluster.exists(key);
}
@Override
public Long expire(String key, int seconds) {
return jedisCluster.expire(key, seconds);
}
@Override
public Long ttl(String key) {
return jedisCluster.ttl(key);
}
@Override
public Long incr(String key) {
return jedisCluster.incr(key);
}
@Override
public Long hset(String key, String field, String value) {
return jedisCluster.hset(key, field, value);
}
@Override
public String hget(String key, String field) {
return jedisCluster.hget(key, field);
}
@Override
public Long hdel(String key, String... field) {
return jedisCluster.hdel(key, field);
}
}
4、代码中使用
package cn.itcast.controller;
import cn.itcast.common.jedis.JedisClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Controller
@RequestMapping("/jedisTest")
public class JedisController {
@Autowired
private JedisClient jediClient;
@RequestMapping("/test1")
public void test1(HttpServletResponse response) throws IOException {
jediClient.set(“134”,“1234”);
jediClient.set(“item:123:base”,"{name:jack,age10}");
response.getWriter().write(“jedis”);
}
@RequestMapping("/getJedis")
public void test2(HttpServletResponse response ) throws IOException {
String s = jediClient.get(“134”);
String s1 = jediClient.get(“item:123:base”);
response.getWriter().write(s);
response.getWriter().write(s1);
}
}
5、test中使用
1)package cn.e3mall.jedis;
import cn.e3mall.common.jedis.JedisClient;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class JedisClientTest {
@Test
public void testJedisClentTest(){
//初始化spring容器
ApplicationContext ac = new ClassPathXmlApplicationContext(“classpath:spring/applicationContext-redis.xml”);
//从容器获取jedisClient对相关
JedisClient client = ac.getBean(JedisClient.class);
client.set(“one”,“one”);
String one = client.get(“one”);
System.out.println(one);
}
}
2)package cn.e3mall.jedis;
import org.junit.Test;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPool;
import java.util.HashSet;
import java.util.Set;
public class JedisTest {
//单点连接
@Test
public void testJedis() throws Exception{
//创建jedis对象
Jedis jedis = new Jedis("192.168.25.129", 6379,100000);
jedis.set("name","kkkk");
String name = jedis.get("name");
System.out.println(name);
jedis.close();
}
//连接池
@Test
public void testJedisPool(){
//创建连接池对象
JedisPool jedisPool = new JedisPool("192.168.25.129", 6379);
Jedis resource = jedisPool.getResource();
//resource.set("name","马克");
String name = resource.get("name");
System.out.println(name);
//关闭连接
resource.close();
//关闭连接池
jedisPool.close();
}
//集群
@Test
public void testCluster(){
Set<HostAndPort> node = new HashSet<>();
node.add(new HostAndPort("192.168.25.129",7001));
node.add(new HostAndPort("192.168.25.129",7002));
node.add(new HostAndPort("192.168.25.129",7003));
node.add(new HostAndPort("192.168.25.129",7004));
node.add(new HostAndPort("192.168.25.129",7005));
node.add(new HostAndPort("192.168.25.129",7006));
JedisCluster jedisCluster = new JedisCluster(node);
//jedisCluster.set("name","张三");
String name = jedisCluster.get("name");
System.out.println(name);
jedisCluster.close();
}
}