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

【在Spring Boot中集成Redis】

在Spring Boot中集成Redis

  • 依赖
  • 在application.yml中配置Redis服务地址
  • 创建Redis配置类
  • 缓存工具类
  • 使用

依赖

     	<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

在application.yml中配置Redis服务地址

#spring配置
spring:profiles:active: druidserver: 8080redis:host: 127.0.0.1port: 6379password:database: 0timeout: 1800000

创建Redis配置类

/*** Redis配置类** 该类配置了Redis的核心功能* RedisTemplate的序列化配置*/
@Configuration
@EnableCaching // 启用Spring缓存注解支持
public class RedisConfig extends CachingConfigurerSupport
{/*** 配置RedisTemplate** @param connectionFactory Redis连接工厂* @return 配置好的RedisTemplate实例*/@Bean@SuppressWarnings(value = { "unchecked", "rawtypes" })public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory){// 创建RedisTemplate实例RedisTemplate<Object, Object> template = new RedisTemplate<>();// 设置连接工厂template.setConnectionFactory(connectionFactory);// 创建FastJson2序列化器,用于值(value)的序列化FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class);// 设置键(key)的序列化器为StringRedisSerializer// StringRedisSerializer专门用于字符串序列化,保证key的可读性template.setKeySerializer(new StringRedisSerializer());// 设置值(value)的序列化器为FastJson2JsonRedisSerializer// 用于复杂对象的序列化template.setValueSerializer(serializer);// 设置Hash结构的key的序列化器template.setHashKeySerializer(new StringRedisSerializer());// 设置Hash结构的value的序列化器template.setHashValueSerializer(serializer);// 初始化模板属性template.afterPropertiesSet();return template;}}

缓存工具类

/*** spring redis 工具类***/
@SuppressWarnings(value = { "unchecked", "rawtypes" })
@Component
public class RedisCache {@Autowiredpublic RedisTemplate redisTemplate;/*** 缓存基本的对象,Integer、String、实体类等** @param key   缓存的键值* @param value 缓存的值*/public <T> void setCacheObject(final String key, final T value) {redisTemplate.opsForValue().set(key, value);}/*** 缓存基本的对象,Integer、String、实体类等** @param key      缓存的键值* @param value    缓存的值* @param timeout  时间* @param timeUnit 时间颗粒度*/public <T> void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit) {redisTemplate.opsForValue().set(key, value, timeout, timeUnit);}/*** 设置有效时间** @param key     Redis键* @param timeout 超时时间* @return true=设置成功;false=设置失败*/public boolean expire(final String key, final long timeout) {return expire(key, timeout, TimeUnit.SECONDS);}/*** 设置有效时间** @param key     Redis键* @param timeout 超时时间* @param unit    时间单位* @return true=设置成功;false=设置失败*/public boolean expire(final String key, final long timeout, final TimeUnit unit) {return redisTemplate.expire(key, timeout, unit);}/*** 获取有效时间** @param key Redis键* @return 有效时间*/public long getExpire(final String key) {return redisTemplate.getExpire(key);}/*** 判断 key是否存在** @param key 键* @return true 存在 false不存在*/public Boolean hasKey(String key) {return redisTemplate.hasKey(key);}/*** 获得缓存的基本对象。** @param key 缓存键值* @return 缓存键值对应的数据*/public <T> T getCacheObject(final String key) {ValueOperations<String, T> operation = redisTemplate.opsForValue();return operation.get(key);}/*** 删除单个对象** @param key*/public boolean deleteObject(final String key) {return redisTemplate.delete(key);}/*** 删除集合对象** @param collection 多个对象* @return*/public boolean deleteObject(final Collection collection) {return redisTemplate.delete(collection) > 0;}
}

使用

http://www.xdnf.cn/news/263755.html

相关文章:

  • 【赵渝强老师】TiDB生态圈组件
  • 3D人物关系图开发实战:Three.js实现自动旋转可视化图谱(附完整代码)
  • 人工智能助力工业制造:迈向智能制造的未来
  • 别样健康养生之道
  • AI 与生物技术的融合:开启精准医疗的新纪元
  • ros2 humble 控制真实机械臂(以lerobot为例)
  • 一种基于重建前检测的实孔径雷达实时角超分辨方法——论文阅读
  • **Java面试大冒险:谢飞机的幽默与技术碰撞记**
  • 做响应式布局网页多简单
  • AI生成视频检测方法及其相关研究
  • WebRTC 服务器之Janus概述和环境搭建
  • Spring MVC入门
  • 第12章:精神力的禁忌边界
  • 强化学习--3.值函数的方法(贝尔曼方程)
  • 直播推流拉流Token验证流程(直播服务器:SRS,验证服务器:EGGS(nodejs))
  • 智能决策支持系统的系统结构:四库架构与融合范式
  • k8s笔记——kubebuilder工作流程
  • 嵌入式硬件篇---STM32F103C8T6STM32F103RCT6
  • Flink 的状态机制
  • Qt中实现工厂模式
  • 音视频开源项目列表
  • 【2025年】MySQL面试题总结
  • 实战探讨:为什么 Redis Zset 选择跳表?
  • xLua笔记
  • 55.[前端开发-前端工程化]Day02-包管理工具npm等
  • Oracle 11g通过dg4odbc配置dblink连接神通数据库
  • Oracle RAC ‘Metrics Global Cache Blocks Lost‘告警解决处理
  • 小程序滚动条隐藏(uniapp版本)
  • 【Java学习】通配符?
  • Java多语言DApp质押挖矿盗U源码(前端UniApp纯源码+后端Java)