SpringBoot-引入Redis依赖

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 本文介绍如何在IDEA里将SpringBoot整合Redis。

在使用Spring Boot开发应用时,可以使用Redis来实现缓存、分布式锁等功能。在编写业务逻辑代码时,可以通过注入RedisTemplate或StringRedisTemplate对象来操作Redis,如存取数据、设置过期时间、删除数据等。同时,还可以使用Redis的发布订阅机制,通过监听器监听消息,实现消息的发布和订阅功能。本文介绍如何在IDEA里将SpringBoot整合Redis。

一、创建带Redis的SpringBoot项目

创建SpringBoot项目时勾选 Spring Data Redis (Access + Driver),项目创建时会自动导入所需的redis的配置项和包。创建SpringBoot-MyBatis的流程可以参考我的上一篇文章:IntelliJ IDEA搭建SpringBoot-Mybatis项目

和上个项目不同的地方,额外勾选这个:


二、安装启动redis服务

参考我之前的文章:Windows安装Redis数据库


三、开发Reids有关的项目代码

1、创建RedisUtil工具类

packagecom.util;
importorg.springframework.stereotype.Component;
importorg.springframework.data.redis.core.RedisTemplate;
importjavax.annotation.Resource;
importjava.util.concurrent.TimeUnit;
@ComponentpublicclassRedisUtil {
@ResourceprivateRedisTemplate<String, Object>redisTemplate;
/*** 设置缓存** @param key    缓存key* @param value  缓存value* @param expire 过期时间(单位:秒),传入-1表示永不过期*/publicvoidset(Stringkey, Objectvalue, longexpire) {
redisTemplate.opsForValue().set(key, value);
if (expire!=-1) {
redisTemplate.expire(key, expire, TimeUnit.SECONDS);
        }
    }
/*** 获取缓存** @param key 缓存key* @return 缓存value*/publicObjectget(Stringkey) {
returnredisTemplate.opsForValue().get(key);
    }
/*** 判断缓存是否存在** @param key 缓存key* @return true:存在,false:不存在*/publicbooleanhasKey(Stringkey) {
returnredisTemplate.hasKey(key);
    }
/*** 删除缓存** @param key 缓存key*/publicvoiddelete(Stringkey) {
redisTemplate.delete(key);
    }
}

2、更新UserController代码

我们新增一个测试接口,通过浏览器访问localhost:8080/redis可以访问到。在UserController里添加代码:

@RequestMapping("redis")
publicStringgetRedis(HttpServletRequestrequest)throwsException{
redisUtil.set("key", "value", 300); //设置key为value,有效期为300秒returnredisUtil.get("key").toString();
    }

目前完整的UserController.java代码:

packagecom.controller;
importjavax.annotation.Resource;
importjavax.servlet.http.HttpServletRequest;
importcom.util.RedisUtil;
importorg.springframework.web.bind.annotation.RequestMapping;
importcom.entity.User;
importcom.service.UserService;
importorg.springframework.web.bind.annotation.RestController;
importjava.util.HashMap;
importjava.util.Map;
@RestControllerpublicclassUserController {
@ResourceprivateUserServiceuserService;
@ResourceprivateRedisUtilredisUtil;
@RequestMapping("user")
publicStringgetTotal(Useruser,HttpServletRequestrequest)throwsException{
Map<String,Object>map=newHashMap<>();
LonguserCount=userService.getTotal(map);
returnuserCount.toString();
    }
@RequestMapping("redis")
publicStringgetRedis(HttpServletRequestrequest)throwsException{
redisUtil.set("key", "value", 300); //设置key为value,有效期为300秒returnredisUtil.get("key").toString();
    }
}

四、测试redis接口是否成功运行

我们在UserController里把<Key=”key”, Value=”value”>的键值对存入了Redis,然后读取Key为”key”的Value值。

成功运行,返回了正确的Value值。

后面我们就可以根据实际情况在SpringBoot项目里编写调用redis数据库的代码了。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
NoSQL Java Redis
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
376 0
|
1月前
|
NoSQL Java Linux
SpringBoot 整合Redis
SpringBoot 整合Redis
18 0
|
2天前
|
JSON NoSQL Java
深入浅出Redis(十三):SpringBoot整合Redis客户端
深入浅出Redis(十三):SpringBoot整合Redis客户端
|
11天前
|
缓存 NoSQL Java
springboot业务开发--springboot集成redis解决缓存雪崩穿透问题
该文介绍了缓存使用中可能出现的三个问题及解决方案:缓存穿透、缓存击穿和缓存雪崩。为防止缓存穿透,可校验请求数据并缓存空值;缓存击穿可采用限流、热点数据预加载或加锁策略;缓存雪崩则需避免同一时间大量缓存失效,可设置随机过期时间。文章还提及了Spring Boot中Redis缓存的配置,包括缓存null值、使用前缀和自定义过期时间,并提供了改造代码以实现缓存到期时间的个性化设置。
|
13天前
|
存储 NoSQL Java
Spring Boot与Redis:整合与实战
【4月更文挑战第29天】Redis,作为一个高性能的键值存储数据库,广泛应用于缓存、消息队列、会话存储等多种场景中。在Spring Boot应用中整合Redis可以显著提高数据处理的效率和应用的响应速度。
27 0
QGS
|
18天前
|
NoSQL 关系型数据库 MySQL
手拉手Springboot+RocketMQ+Redis抢单实现10W级QPS
手拉手Springboot+RocketMQ+Redis抢单实现10W级QPS
QGS
32 3
|
23天前
|
NoSQL 数据可视化 Java
Springboot整合redis
Springboot整合redis
|
23天前
|
人工智能 前端开发 Java
Java语言开发的AI智慧导诊系统源码springboot+redis 3D互联网智导诊系统源码
智慧导诊解决盲目就诊问题,减轻分诊工作压力。降低挂错号比例,优化就诊流程,有效提高线上线下医疗机构接诊效率。可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室。
186 10
|
1月前
|
NoSQL Java Redis
Springboot整合redis
Springboot整合redis
|
1月前
|
NoSQL Java Redis
SpringBoot集成Redis并使用Redis发布订阅模式
SpringBoot集成Redis并使用Redis发布订阅模式
59 3