博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot整合Redis缓存
阅读量:6588 次
发布时间:2019-06-24

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

前言:此整合为非注解形式,使用工具类进行自主数据控制

专有名词解析:Jedis是Redis官方推荐的面向Java的操作Redis的客户端,而RedisTemplate是SpringDataRedis中对JedisApi的高度封装

环境: IDEA版本2017.3.1 x64, JDK1.8, SpringBoot2.1.1

总流程:

  • pom导入Redis的依赖组件
  • 全局配置文件配置Redis
  • 编写RedisTemplate工具类
  • 编写测试用例

pom导入Redis的依赖组件

org.springframework.boot
spring-boot-starter-data-redis
复制代码

全局配置文件配置Redis

spring:    redis:      host: yourIpAddress      password: yourPassword      port: 6379      jedis:        pool:        #最大连接数据库连接数,设 0 为没有限制        max-active: 8        #最大等待连接中的数量,设 0 为没有限制        max-idle: 8        #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。        max-wait: -1ms        #最小等待连接中的数量,设 0 为没有限制        min-idle: 0复制代码

编写RedisTemplate工具类

/** * @create 2018-12-10 23:10 * redis工具类 */@Componentpublic final class RedisUtil {    @Autowired    private RedisTemplate
redisTemplate; /** * 指定缓存失效时间 * * @param key 键 * @param time 时间(秒) * @return */ public boolean expire(String key, long time) { try { if (time > 0) { redisTemplate.expire(key, time, TimeUnit.SECONDS); } return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 根据key 获取过期时间 * * @param key 键 不能为null * @return 时间(秒) 返回0代表为永久有效 */ public long getExpire(String key) { return redisTemplate.getExpire(key, TimeUnit.SECONDS); } /** * 判断key是否存在 * * @param key 键 * @return true 存在 false不存在 */ public boolean hasKey(String key) { try { return redisTemplate.hasKey(key); } catch (Exception e) { e.printStackTrace(); return false; } } /** * 删除缓存 * * @param key 可以传一个值 或多个 */ @SuppressWarnings("unchecked") public void del(String... key) { if (key != null && key.length > 0) { if (key.length == 1) { redisTemplate.delete(key[0]); } else { redisTemplate.delete(CollectionUtils.arrayToList(key)); } } } // ============================String============================= /** * 普通缓存获取 * * @param key 键 * @return 值 */ public Object get(String key) { return key == null ? null : redisTemplate.opsForValue().get(key); } /** * 普通缓存放入 * * @param key 键 * @param value 值 * @return true成功 false失败 */ public boolean set(String key, Object value) { try { redisTemplate.opsForValue().set(key, value); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 普通缓存放入并设置时间 * * @param key 键 * @param value 值 * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 * @return true成功 false 失败 */ public boolean set(String key, Object value, long time) { try { if (time > 0) { redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); } else { set(key, value); } return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 递增 * * @param key 键 * @param delta 要增加几(大于0) * @return */ public long incr(String key, long delta) { if (delta < 0) { throw new RuntimeException("递增因子必须大于0"); } return redisTemplate.opsForValue().increment(key, delta); } /** * 递减 * * @param key 键 * @param delta 要减少几(小于0) * @return */ public long decr(String key, long delta) { if (delta < 0) { throw new RuntimeException("递减因子必须大于0"); } return redisTemplate.opsForValue().increment(key, -delta); }}复制代码

编写测试用例

@AutowiredRedisUtil redisUtil;@Test    public void testRedis(){        Employee employee = employeeMapper.getEmpById(1);        //往redis中存入对象        redisUtil.set("emp",employee);        //从redis中取出对象        Employee emp = (Employee) redisUtil.get("emp");        System.out.println(emp);    }复制代码

查看缓存:

更多关于Redis的配置可参考官网:

更多Spring Boot整合可浏览此博客:

转载于:https://juejin.im/post/5c163f165188254ec27e7472

你可能感兴趣的文章
nginx+ffmpeg搭建rtmp转播rtsp流的flash服务器
查看>>
Win10 IoT C#开发 1 - Raspberry安装IoT系统及搭建开发环境
查看>>
关于在arm裸板编程时使用printf问题的解决方法
查看>>
开源人工智能技术将改变一切
查看>>
2015 上半年 JavaScript 使用统计数据
查看>>
《OpenGL ES 3.x游戏开发(上卷)》一2.4 文件I/O
查看>>
《写给程序员的数据挖掘实践指南》——5.2. 10折交叉验证的例子
查看>>
JVM性能优化, Part 5:Java的伸缩性
查看>>
《Python算法教程》——1.6 如果您感兴趣
查看>>
《正则表达式经典实例(第2版)》——2.18 向正则表达式中添加注释
查看>>
lolcat :一个在 Linux 终端中输出彩虹特效的命令行工具
查看>>
ROS机器人程序设计(原书第2版)3.9 3D可视化
查看>>
干货 | 豆子科技首席架构师钟声:Java的纯真年代
查看>>
《数字图像处理与机器视觉——Visual C++与Matlab实现》——0.2 数字图像处理与识别...
查看>>
Storm-源码分析-Topology Submit-Client
查看>>
深度解析Java8 – AbstractQueuedSynchronizer的实现分析(下)
查看>>
SSH原理与运用(一):远程登录
查看>>
Spring Framework 4.2 中的新功能和增强功能
查看>>
动态代理解决网站字符集编码
查看>>
Spring中的AOP(二)——AOP基本概念和Spring对AOP的支持
查看>>