当前位置: 首页 > news >正文

Spring Boot3.4.1 集成redis

Spring Boot3.4.1 集成redis

第一步 引入依赖
<!-- redis 缓存操作 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- pool 对象池 -->
<!-- 使用lettuce客户端需要引入commons-pool2依赖 -->
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId>
</dependency>
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.31</version>
</dependency>
第二步 引入配置
spring:# redis 配置redis:# 地址host: 127.0.0.1# 端口,默认为6379port: 6379# 密码,没有不填password: ''# 连接超时时间timeout: 10slettuce:pool:# 连接池中的最小空闲连接min-idle: 0# 连接池中的最大空闲连接max-idle: 8# 连接池的最大数据库连接数max-active: 8# #连接池最大阻塞等待时间(使用负值表示没有限制)max-wait: -1ms
第三步 编写redis配置类
@Configuration
@EnableCaching
public class RedisConfig {@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory){RedisTemplate<String, Object> template = new RedisTemplate<>();template.setConnectionFactory(connectionFactory);template.setValueSerializer(new StringRedisSerializer());// 使用StringRedisSerializer序列化和反序列化redis的key值template.setKeySerializer(new StringRedisSerializer());// 使用StringRedisSerializer序列化和反序列化redis hash类型的key值template.setHashKeySerializer(new StringRedisSerializer());// 序列化和反序列化redis hash类型的value值template.setHashValueSerializer(new StringRedisSerializer());template.afterPropertiesSet();return template;}
}
第四步 编写操作工具类
@Component
public class RedisUtils
{@Autowiredprivate RedisTemplate<String, Object>   redisTemplate;/**  默认过期时长,单位:秒 */public final static long                DEFAULT_EXPIRE = 60 * 60 * 24;public void set(String key, Object value){set(key, value, DEFAULT_EXPIRE);}public void set(String key, Object value, long expire){redisTemplate.opsForValue().set(key, toJson(value));redisTemplate.expire(key, expire, TimeUnit.SECONDS);}public String get(String key){return redisTemplate.opsForValue().get(key).toString();}public <T> T get(String key, Class<T> clazz){String value = redisTemplate.opsForValue().get(key).toString();return value == null ? null : fromJson(value, clazz);}public void delete(String key){redisTemplate.delete(key);}private String toJson(Object object){if (object instanceof Integer || object instanceof Long || object instanceof Float || object instanceof Double|| object instanceof Boolean || object instanceof String){return String.valueOf(object);}return JSON.toJSONString(object);}private <T> T fromJson(String json, Class<T> clazz){return JSON.parseObject(json, clazz);}
}
第五步 测试
@RestController
@RequestMapping("test")
public class TestController {@Autowiredprivate RedisUtils redisUtils;@RequestMapping("/hello")public String hello() {redisUtils.set("test1","hello world");System.out.println(redisUtils.get("test1"));return "hello";}
}

相关文章:

  • 小黑大语言模型通过设计demo进行应用探索:langchain中chain的简单理解demo
  • 几种常用的Agent的Prompt格式
  • 基于cornerstone3D的dicom影像浏览器 第二十七章 设置vr相机,复位视图
  • 【大模型】Bert应对超长文本
  • CSS Day07
  • 华为交换机命令:display css status
  • 因泰立科技:镭眸T51激光雷达,打造智能门控新生态
  • React项目在ios和安卓端要做一个渐变色背景,用css不支持,可使用react-native-linear-gradient
  • CSS级联样式(基础知识)备忘录
  • Tailwind CSS 实战:基于 Kooboo 构建 AI 对话框页面(五):语音合成输出与交互增强
  • 内存监控方法与要点详解
  • 知识图谱增强的大型语言模型编辑
  • css实现文字渐变
  • Marshalling与Demarshalling深度解析
  • 大语言模型 24 - MCP 自动操作 提高模型上下文能力 Cursor + Sequential Thinking Server Memory
  • Cangjie 中的值类型与引用类型
  • c# 获取电脑 分辨率 及 DPI 设置
  • CQF预备知识:Python相关库 -- NumPy 基础知识 - 线性代数 numpy.linalg
  • 得物前端面试题及参考答案(精选50道题)
  • 从认识AI开始-----解密门控循环单元(GRU):对LSTM的再优化
  • php动态网站开发 网站成品/网页链接制作生成
  • 建立b2b网站成本/网站广告接入
  • 做手机网站多少钱/怎样做一个网页
  • 设计师效果图网站/深圳专业seo
  • 仿网站源码/深圳推广服务
  • 响应式网站建设企业/steam交易链接在哪