环境配置 pom.xml
注意匹配data-redis和jedis的版本问题, 如果出现问题可以检查是否是版本冲突
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.5</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>top.zhengxin1024</groupId><artifactId>redis</artifactId><version>0.0.1-SNAPSHOT</version><name>redis</name><description>Redis in Java8</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.5.2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build></project>
变量配置application.yml
spring:redis:database: 0host: 127.0.0.1port: 6379password: # 如果未单独配置默认为空即可timeout: 1000jedis:pool:max-active: 8max-wait: -1max-idle: 8min-idle: 0
IDEA中下载redis插件进行可视化处理

一个月试用,5美金买断
下载后简单配置连接至本地已启动的redis服务器
包装Redis工具类
由于RedisTemplate里的API比较繁杂,且不够统一,可以考虑额外写一个工具类,并且针对业务进行修改。
使用接口+实现类或单纯的写一个Util类解决问题
RedisUtil.java,此处简单重写了set,getset,get,delete,expire和getExpire方法。
package top.zhengxin1024.redis.util;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.stereotype.Component;import java.util.concurrent.TimeUnit;/*** @Package: top.zhengxin1024.redis.util* @Description: Wrap the RedisTemplate to simply the general API* @Author: Xin Zheng* @Date: 2021 2021/4/21 13:52*/@Componentpublic class RedisUtil {@Autowiredprivate RedisTemplate<String,String> redisTemplate;public boolean set(final String key, String value){boolean result = false;try{redisTemplate.opsForValue().set(key,value);result = true;} catch (Exception e){e.printStackTrace();}return result;}public String get(final String key){return redisTemplate.opsForValue().get(key);}public boolean getAndSet(final String key, String value){boolean result = false;try{redisTemplate.opsForValue().getAndSet(key,value);result = true;} catch (Exception e){e.printStackTrace();}return result;}public boolean delete(final String key){boolean result = false;try{redisTemplate.delete(key);result = true;} catch (Exception e){e.printStackTrace();}return result;}public boolean expire(String key, long time){boolean result = false;try{if (time>0){redisTemplate.expire(key,time, TimeUnit.SECONDS);}result = true;} catch (Exception e){e.printStackTrace();}return result;}public Long getExpire(String key){return redisTemplate.getExpire(key);}}
简单的测试工具类
RedisUtilTest.java
package top.zhengxin1024.redis.util;import org.junit.jupiter.api.AfterEach;import org.junit.jupiter.api.BeforeEach;import org.junit.jupiter.api.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import javax.annotation.Resource;import static org.junit.jupiter.api.Assertions.*;/*** @Package: top.zhengxin1024.redis.util* @Description:* @Author: Xin Zheng* @Date: 2021 2021/4/21 14:03*/@SpringBootTest@RunWith(SpringJUnit4ClassRunner.class)class RedisUtilTest {@Resourceprivate RedisUtil redisUtil;@BeforeEachvoid setUp() {redisUtil.set("default","default");}@AfterEachvoid tearDown() {System.out.println(redisUtil.getExpire("default"));}@Testvoid set() {redisUtil.set("test_Key","test_Value");}@Testvoid get() {System.out.println(redisUtil.get("test_Key"));}@Testvoid getAndSet() {redisUtil.getAndSet("test_Key","new_test_Value");System.out.println(redisUtil.get("test_Key"));}@Testvoid delete() {System.out.println(redisUtil.delete("test_Key"));}@Testvoid expire(){redisUtil.expire("default",30);}}
额外的配置内容
在application.yml中配置了最基本的参数,如果有复杂的参数配置,考虑到修改和可读性,应使用java文件进行配置。配置方法与配置myBatis, spring等框架类似,不在此处赘述。
总结
redis在springboot中集成简便,但需要针对本身的API进行封装。操作灵活,测试简易,便于理解。
