1.环境IDEA:2026.1JDK:17Redis:3.0.xmaven:3.6.3本文源代码在文章末尾。2.创建Spring Boot项目点击“文件”—“新建”—“项目”新建项目这里选择Spring Boot选一个位置创建的项目语言选“Java”类型选MavenJDK选17打包方式选jar配置选YAML然后点击下一步。这里Spring Boot选择3.x版本后面在Web里面选择“Spring Web”然后点击“创建”。然后等待一会项目会创建完。注意maven需要配置正确不然项目会创建失败3.引用Redis依赖、修改配置文件我们打开项目的pom.xml文件引入redis的相关依赖!-- SpringDataRedis--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!--连接池--dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactId/dependency这里给出pom.xml文件参考?xml version1.0 encodingUTF-8?projectxmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.5.13/versionrelativePath/!-- lookup parent from repository --/parentgroupIdcom.guo/groupIdartifactIdredis-demo/artifactIdversion0.0.1-SNAPSHOT/versionnameredis-demo/namedescriptionredis-demo/descriptionurl/licenseslicense//licensesdevelopersdeveloper//developersscmconnection/developerConnection/tag/url//scmpropertiesjava.version17/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!-- SpringDataRedis--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!--连接池--dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project引入依赖后点击刷新让我们的maven去更新依赖如果你不明白可以使用下面两种方式之一新手照着操作即可。如果上面的方式还是没有正常加载依赖那么可以打开控制台输入下面两个指令。mvn clean mvn compile如果还是不好用的话就用重启大法偶尔抽风是很正常的然后修改配置文件spring: application: name: redis-demo redis: host: localhost#连接地址port:6379#连接端口password:#密码未设置则为空database:0#数据库索引默认0lettuce:# 使用 Lettuce 客户端默认pool: max-active:8# 最大连接数max-idle:8# 最大空闲连接min-idle:0# 最小空闲连接max-wait: 1000ms# 最大等待时间注意配置文件中冒号后面有空格如果不确定可以先复制再修改。4.新增Redis配置类Redis配置类主要为了解决序列化乱码问题。序列化 把 Java 对象 → 打成 “快递包”存进 Redis反序列化 把 Redis 里的 “快递包” → 变回 Java 对象类名输入RedisConfig参考代码如下importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.data.redis.connection.RedisConnectionFactory;importorg.springframework.data.redis.core.RedisTemplate;importorg.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;importorg.springframework.data.redis.serializer.RedisSerializer;ConfigurationpublicclassRedisConfig{//配置 RedisTemplate//RedisConnectionFactory 是Spring 中创建、管理 Redis 连接的工厂负责根据配置建立 Redis 连接读取配置文件BeanpublicRedisTemplateString,ObjectredisTemplate(RedisConnectionFactoryfactory){RedisTemplateString,ObjecttemplatenewRedisTemplate();//创建 RedisTemplate 对象操作 Redis 的核心工具template.setConnectionFactory(factory);//绑定 Redis 连接工厂让它能连上 Redis// 定义序列化工具RedisSerializerStringstringSerializerRedisSerializer.string();// 创建【JSON 序列化器】// 作用把 Java 对象转成 JSON 存进 Redis// 取出来又能自动转回对象GenericJackson2JsonRedisSerializerjsonSerializernewGenericJackson2JsonRedisSerializer();// key 序列化template.setKeySerializer(stringSerializer);//key 一律使用字符串序列化普通 Redis 键template.setHashKeySerializer(stringSerializer);//hash 类型的 key 也用字符串序列化// value 序列化template.setValueSerializer(jsonSerializer);//value 使用 JSON 序列化template.setHashValueSerializer(jsonSerializer);//hash 类型的 value 也用 JSON 序列化//让配置生效template.afterPropertiesSet();returntemplate;}}5.封装Redis工具类增删改查使用Redis的时候一般把Redis进行封装我们继续操作。右击项目选择“新建”—“软件包”包名为utils右击刚才创建的utils选择“新建”—“Java类”类名为RedisUtil参考代码如下importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.data.redis.core.RedisTemplate;importorg.springframework.stereotype.Component;importjava.util.Arrays;importjava.util.List;importjava.util.Map;importjava.util.Set;importjava.util.concurrent.TimeUnit;ComponentpublicclassRedisUtil{AutowiredprivateRedisTemplateString,ObjectredisTemplate;// 公共方法 /** * 指定缓存过期时间 * param key 键 * param time 时间秒 */publicbooleanexpire(Stringkey,longtime){try{if(time0){redisTemplate.expire(key,time,TimeUnit.SECONDS);}returntrue;}catch(Exceptione){e.printStackTrace();returnfalse;}}/** * 根据key获取过期时间 */publiclonggetExpire(Stringkey){returnredisTemplate.getExpire(key,TimeUnit.SECONDS);}/** * 判断key是否存在 */publicbooleanhasKey(Stringkey){try{returnredisTemplate.hasKey(key);}catch(Exceptione){e.printStackTrace();returnfalse;}}/** * 删除缓存 */publicvoiddel(String...key){if(key!nullkey.length0){if(key.length1){redisTemplate.delete(key[0]);}else{redisTemplate.delete(Arrays.asList(key));}}}// String 类型 /** * 获取缓存 */publicObjectget(Stringkey){returnkeynull?null:redisTemplate.opsForValue().get(key);}/** * 设置缓存 */publicbooleanset(Stringkey,Objectvalue){try{redisTemplate.opsForValue().set(key,value);returntrue;}catch(Exceptione){e.printStackTrace();returnfalse;}}/** * 设置缓存并设置时间 */publicbooleanset(Stringkey,Objectvalue,longtime){try{if(time0){redisTemplate.opsForValue().set(key,value,time,TimeUnit.SECONDS);}else{set(key,value);}returntrue;}catch(Exceptione){e.printStackTrace();returnfalse;}}/** * 递增 */publiclongincr(Stringkey,longdelta){if(delta0){thrownewRuntimeException(递增因子必须大于0);}returnredisTemplate.opsForValue().increment(key,delta);}/** * 递减 */publiclongdecr(Stringkey,longdelta){if(delta0){thrownewRuntimeException(递减因子必须大于0);}returnredisTemplate.opsForValue().increment(key,-delta);}// Map 类型 publicObjecthget(Stringkey,Stringitem){returnredisTemplate.opsForHash().get(key,item);}publicMapObject,Objecthmget(Stringkey){returnredisTemplate.opsForHash().entries(key);}publicbooleanhmset(Stringkey,MapString,Objectmap){try{redisTemplate.opsForHash().putAll(key,map);returntrue;}catch(Exceptione){e.printStackTrace();returnfalse;}}// Set 类型 publicSetObjectsGet(Stringkey){try{returnredisTemplate.opsForSet().members(key);}catch(Exceptione){e.printStackTrace();returnnull;}}// List 类型 publicListObjectlGet(Stringkey,longstart,longend){try{returnredisTemplate.opsForList().range(key,start,end);}catch(Exceptione){e.printStackTrace();returnnull;}}}6.修改启动类、增加测试代码要想正常使用上面的Redis还要修改一下启动类我们打开启动类新增一行注解ComponentScan(basePackages “com.guo”)这里需要注意的是包名不要写错了。然后开始修改测试类代码。我们在测试类里面新建很多测试方法先找到测试类的位置。然后新增测试方法:importcom.guo.utils.RedisUtil;importjakarta.annotation.Resource;importorg.junit.jupiter.api.Test;importorg.springframework.boot.test.context.SpringBootTest;SpringBootTestclassRedisDemoApplicationTests{ResourceprivateRedisUtilredisUtil;TestvoidcontextLoads(){}//测试新增Testpublicvoidset(){redisUtil.set(name,张三,60);// 60秒过期System.out.println(设置成功);}//测试查询Testpublicvoidget(){ObjectobjectredisUtil.get(name);System.out.println(查询结果object);}//测试删除Testpublicvoiddel(){redisUtil.del(name);System.out.println(删除成功);}//测试过期时间Testpublicvoidexpire(){redisUtil.expire(name,15);System.out.println(设置成功);}//测试是否存在TestpublicvoidhasKey(){booleanhasKeyredisUtil.hasKey(name);System.out.println(是否存在hasKey);}}7.代码测试先本地运行Redis相关参数要和上面的相符合。1测试新增、存在、查询功能过程1先运行存在功能证明不存在再运行新增代码最后运行查询代码。下面证明不存在”name“这个key然后执行插入操作下面的提示插入成功。下面开始执行查询操作下面是查询结果注意代码中设置了60秒过期所以要在60秒内查询才有效不然会查不到4测试删除过程新增后运行删除操作再查询先执行set方法然后执行查询操作就会发现查不到了。8.结语本文简单实现了Spring Boot使用Spring Data Redis整合Redis操作的例子上面代码的问题是key和value都是写死的实际开发中这都是传入的参数后面应该向此方向改进。本文源代码下载:(1) 百度网盘通过网盘分享的文件redis-demo.zip链接: https://pan.baidu.com/s/1izToPZ9bhWLOSkCoNO6xOg?pwdxvs2 提取码: xvs22夸克网盘我用夸克网盘给你分享了「redis-demo.zip」点击链接或复制整段内容打开「夸克APP」即可获取。/76d53b5gSv链接https://pan.quark.cn/s/855d21c7b5b2?pwdqhg3提取码qhg3
