【十次方】Springboot中使用Redis做缓存
Spring全家桶+分布式微服务(十次方项目学习)
十次方学习交流qq群:672373393
今天学习十次方项目,其中说到了如何在springboot框架中如何使用redis缓存,写篇博客记录一下。
为什么要用缓存?
在我们平时开发的项目中,其实是比较忌讳频繁的与数据库打交道的。所以我们需要用到缓存,来避开与数据库的多次交互。获取重复的数据我们只需要第一次查询数据,然后将数据存入redis缓存中,之后再次获取就直接通过缓存而避开与数据库交互。
如何使用
1.导入redis配置
我们需要在pom.xml文件中加入redis配置
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
然后在application.yml文件中配置redis连接地址
2.代码使用
接下来的使用就比较简单了,在service中添加RedisTemplate实例
@Autowiredprivate RedisTemplate redisTemplate;
这里我们优化一下findById根据id查询方法的效率
/*** 根据ID查询实体* @param id* @return*/public Article findById(String id) {//先从缓存中查询当前对象Article article = (Article) redisTemplate.opsForValue().get("article"+id);//如果没有if(article==null){//从数据库中取article = articleDao.findById(id).get();//存入缓存中redisTemplate.opsForValue().set("article"+id,article);}return article;}
但是需要注意一点,如果我们数据库中数据修改了,那边对应的缓存中的数据也需要修改,不然读取的将一直是第一次存入缓存中的数据。所以我们对应的需要对 修改 删除方法进行改动
/*** 修改* @param article*/public void update(Article article) {redisTemplate.delete("article"+article.getId());articleDao.save(article);}/*** 删除* @param id*/public void deleteById(String id) {redisTemplate.delete("article"+id);articleDao.deleteById(id);}
最后简单介绍一下RedisTemplate对象常用的几个方法:
stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间
stringRedisTemplate.opsForValue().get("test")//根据key获取缓存中的val
stringRedisTemplate.boundValueOps("test").increment(-1);//val做-1操作
stringRedisTemplate.boundValueOps("test").increment(1);//val +1
stringRedisTemplate.getExpire("test")//根据key获取过期时间
stringRedisTemplate.getExpire("test",TimeUnit.SECONDS)//根据key获取过期时间并换算成指定单位
stringRedisTemplate.delete("test");//根据key删除缓存
stringRedisTemplate.hasKey("546545");//检查key是否存在,返回boolean值
stringRedisTemplate.expire("red_123",1000 , TimeUnit.MILLISECONDS);//设置过期时间
stringRedisTemplate.opsForSet().add("red_123", "1","2","3");//向指定key中存放set集合
stringRedisTemplate.opsForSet().isMember("red_123", "1")//根据key查看集合中是否存在指定数据
stringRedisTemplate.opsForSet().members("red_123");//根据key获取set集合
【十次方】Springboot中使用Redis做缓存相关推荐
- SpringBoot集成Redis和配置Redis做缓存
Redis介绍 Redis是一个开源的.高性能的.基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求,直观的存储结构使得通过程序交互十分简单. Redis数据库中所有 ...
- springboot整合redis做缓存
之前的项目中,用到过redis,主要是使用redis做缓存,redis在web开发中使用的场景很多,其中缓存是其中一个很重要的使用场景,之所以用作缓存,得益于redis的读写数据,尤其是在读取数据的时 ...
- springboot整个缓存_SpringBoot中整合Redis(缓存篇)
实际开发中缓存处理是必须的,不可能我们每次客户端去请求一次服务器,服务器每次都要去数据库中进行查找,为什么要使用缓存?说到底是为了提高系统的运行速度.将用户频繁访问的内容存放在离用户最近,访问速度最快 ...
- 9.redis 做缓存
全网最新相关内容 标题-链接 发布日期 简介 来源 轻松理解redis做缓存的流程_小浩丶的博客-CSDN博客_redis ... 2022-4-5 22:59:03 1. 引言 缓存有啥用?降低对数 ...
- springboot中使用redis详解
一.redis简介 redis是一款高性能key-value(键值对)内存型数据库,是非关系型数据库的一种,它采用单线程的架构方式,避免了多线程存在的锁处理造成的资源耗费,读取速度非常快,非常适合变化 ...
- 如果redis哨兵宕机了怎么办_Spring集成Redis做缓存,Redis宕机时Spring处理的问题
采用的是Spring自带的缓存管理,使用Redis做缓存,在Spring中配置如下 @Configuration @EnableCaching public class CachingConfig { ...
- 使用redis做缓存,遇到Could not return the resource to the pool异常怎么办呐!
使用redis做缓存,短短几天就遇到两次redis.clients.jedis.exceptions.JedisException: Could not return the resource to ...
- Docker中搭建redis分片集群,搭建redis哨兵结构,实现springboot中对redis分片集群、哨兵结构的访问,Redis缓存雪崩、缓存击穿处理(非关系型数据库技术课程 第十二周)
文章目录 一.要求: 二.知识总结 缓存雪崩 解决方案 docker中redis分片集群搭建 配置好配置文件 redis-6380.conf redis-6381.conf redis-6382.co ...
- SpringBoot集成Shiro前后端分离使用redis做缓存
文章目录 一 .shiro介绍 1.基础介绍 2.基本功能点 3.基本流程图 二. 常用的权限管理表关系 2.1. 表组成 2.2. 表结构 三.实战案例 3.1. 案例介绍 3.2. 依赖 3.3. ...
- springboot redis做缓存
一.配置好redis,不做赘述,只需要连接成功就好,有复杂需求请自行搜索redis 缓存相关策略配置 二.springboot pom引入cache <!-- https://mvnreposi ...
最新文章
- c语言规定在一个源程序中main函数的位置是什么?
- 常系数线性递推的第n项及前n项和(转载)
- 信佑无盘主服务器密码,(信佑无盘帮助手册.doc
- python计算排队时间_Python(pdb)-排队执行命令
- Spring面试之不同版本AOP执行顺序详解
- tex中让公式和文字在一行_1行代码搞定LaTeX公式编写,这个4.6M的Python小插件,堪称论文必备神器...
- 开源该如何“扎根”中国?听听他们怎么说
- [转]ExtJs中使用中碰到的三个问题的解决方法
- [C++] 中的trivial destructor
- html的abbr标签,html中如何使用abbr标签
- mac 阿里云ecs配置php,在Mac OS下配置PHP开发环境
- Evaluating Student Writing
- 测试开发—码流、单码流、双码流、多码流
- 以太网的分层架构_工业以太网中层次拓扑结构对网络性能的影响
- 随机生成英文字母 php,PHP生成随机英文用户名
- 用函数计算两数之和和两数之积
- 吃鸡服务器显示错误代码103,安装错误代码103怎么回事?
- linux开发技术栈
- 配上新的pip源再来安装pytorch有如神助
- linux磁盘文件格式转换,使用Fstransform在Linux下无损转换文件系统格式