reids(jedis)包括单点和集群

1、pom.xml


redis.clients
jedis
2.7.2

2、包括单点和集群

<?xml version="1.0" encoding="UTF-8"?>

<!-- 连接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();
}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值