SpringBoot中整合Redis
本次,我们以IDEA + SpringBoot作为 Java中整合Redis的使用 的测试环境,如果对创建SpringBoot项目有不清楚的地方,可以参考这篇文章:使用Idea创建我的第一个SpringBoot项目
首先,我们需要导入Redis的maven依赖 - <!-- Redis的maven依赖包 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-redis</artifactId>
- </dependency>
复制代码其次,我们需要在配置文件中配置你的Redis配置信息,我使用的是 .yml文件格式 - # redis配置
- spring:
- redis:
- # r服务器地址
- host: 127.0.0.1
- # 服务器端口
- port: 6379
- # 数据库索引(默认0)
- database: 0
- jedis:
- pool:
- # 连接池最大连接数(使用负值表示没有限制)
- max-active: 50
- # 连接池最大阻塞等待时间(使用负值表示没有限制)
- max-wait: 3000ms
- # 连接池中的最大空闲连接数
- max-idle: 20
- # 连接池中的最小空闲连接数
- min-idle: 2
- # 连接超时时间(毫秒)
- timeout: 5000ms
复制代码然后,我们需要创建一个RedisUtil来对Redis数据库进行操作 最后,我们可以使用单元测试来检测我们在RedisUtil中写的操作Redis数据库的方法 - package com.zyxx.test;
- import com.zyxx.test.utils.RedisUtil;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.springframework.boot.test.context.SpringBootTest;
- import org.springframework.test.context.junit4.SpringRunner;
- import javax.annotation.Resource;
- @RunWith(SpringRunner.class)
- @SpringBootTest
- public class TestApplicationTest {
- @Resource
- private RedisUtil redisUtil;
- @Test
- public void setRedis() {
- boolean res = redisUtil.set("jay", "周杰伦 - 《以父之名》");
- System.out.println(res);
- }
- @Test
- public void getRedis() {
- String res = redisUtil.get("jay");
- System.out.println(res);
- }
- @Test
- public void updateRedis() {
- boolean res = redisUtil.update("jay", "周杰伦 - 《夜的第七章》");
- System.out.println(res);
- }
- @Test
- public void delRedis() {
- boolean res = redisUtil.del("jay");
- System.out.println(res);
- }
- @Test
- public void hasKey() {
- boolean res = redisUtil.hasKey("jay");
- System.out.println(res);
- }
- @Test
- public void expire() {
- boolean res = redisUtil.setExpire("jay", 100);
- System.out.println(res);
- }
- @Test
- public void getExpire() {
- long res = redisUtil.getExpire("jay");
- System.out.println(res);
- }
- @Test
- public void persist() {
- boolean res = redisUtil.persist("jay");
- System.out.println(res);
- }
- }
复制代码推荐使用Redis客户端(redis-desktop-manager)来查看Redis数据库中的数据
至此,我们在日常项目中整合Redis的基本使用操作就完成了,但在实际项目中,可能会涉及到更复杂的用法,可以根据你的业务需求调整Redis的使用即可。
SpringBoot整合Redis改不了database问题
关于学习redis写的yaml文件,里面的 - redis:
- database: 15
- host: 127.0.0.1
- port: 6379
- password:
- timeout: 3000ms # 连接超时时间(毫秒)
复制代码但是springboot自动装配一直是database为0
最后发现是没有找到我配置的redis,默认是用的自动装配的默认地址(所以我一直以为我的yaml写对了,但是没用写对,因为一直没有取到我的值)
自动装配的就是 - database=0,port=6379;无密码,host=localhost,
复制代码就是因为这个原因,我写的数据能进入我的本地redis中,所以我一直没找到问题,因为我也使用的本地的redis测试的,一直找不到为什么改不了database。
最后发现是我的yaml文件的redis写错了,把redis写到log下面,并且归属于log。
最后该成归属于spring下面就可以了。
注意:一定要注意yaml的书写规范和上下级的关系。
深刻的教训,我在网上查了很多,也没找到对应的办法,幸好没有,不然的话,我的代码会被改的乱七八糟的,花了一下午才发现是自己yaml写错了。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持晓枫资讯。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |