博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis和spring集成
阅读量:7042 次
发布时间:2019-06-28

本文共 6641 字,大约阅读时间需要 22 分钟。

redis和spring框架的整合

我这里创建的是maven工程,通过maven锁定版本号,管理jar包之间的依赖

1.在pom文件中,引入spring和redis的jar包的坐标:

4.12
4.2.4.RELEASE
2.7.2
org.springframework
spring-context
org.springframework
spring-beans
org.springframework
spring-webmvc
org.springframework
spring-jdbc
org.springframework
spring-aspects
org.springframework
spring-jms
org.springframework
spring-context-support
redis.clients
jedis

2.将redis的基本数据类型操作封装成工具类

定义接口JedisClient:

package nyist.e3.utils.redis;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);}

单机版实现该接口的操作:

package nyist.e3.utils.redis;import org.springframework.beans.factory.annotation.Autowired;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;public class JedisClientPool implements JedisClient {        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;    }}

集群实现该接口:

package nyist.e3.utils.redis;import redis.clients.jedis.JedisCluster;public class JedisClientCluster implements JedisClient {        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);    }}

3.在spring中配置单机版的连接池

4.redis集群在spring中的配置

需要注意的是:单机版的配置和集群版的配置不能同时存在,如果使用集群版,将单机版的注释,使用单机版,注释集群版的配置。总之,只用配置一个。

6.话不多说,直接上测试的代码:

@Test    public void testPool() {        ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-redis.xml");        JedisClientPool jedisClientPool = (JedisClientPool) context.getBean("jedisClientPool");        jedisClientPool.set("school", "nyist");        String value = jedisClientPool.get("school");        System.out.println(value);    }
View Code

 

转载于:https://www.cnblogs.com/shuai-server/p/8922689.html

你可能感兴趣的文章
JVM 堆栈区域数据存放流程
查看>>
【MyBatis框架】配置文件-resultMap总结
查看>>
JSP生成验证码
查看>>
浏览器的窗口位置和大小
查看>>
Path实现常见toolbar点击弹出菜单效果
查看>>
介绍Spring Cloud微服务架构的核心特性
查看>>
剥开比原看代码(六):比原是如何把请求区块数据的信息发出去的
查看>>
小猿圈linux之linux基础命令大全(一)
查看>>
当经历所有大厂的实习面试过后
查看>>
从BEC“代币蒸发”事件看智能合约编写注意事项
查看>>
CentOS 7 Minimal 安装 LXQT
查看>>
机器码 指令 汇编语言 的关系
查看>>
摸索 JS 内深拷贝的最佳实践
查看>>
设计师面试会遇到的问题(part1:HR篇)
查看>>
周记_
查看>>
去掉UIPickerView的弯曲弧度
查看>>
使阿里oss实现前端代码自动上传
查看>>
JavaScript中的作用域和闭包
查看>>
暴力破解WiFi密码
查看>>
Zend Studio使用教程:使用Zend Studio和Zend Server进行根本原因分析 (二)
查看>>