当前位置: 首页 > 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;}
}

使用

相关文章:

  • LeetCode - 1137.第N个泰波那契数
  • 学习黑客色即是空
  • python使用cv2在图片上标点
  • 二、shell脚本--变量与数据类型
  • c++_2011 NOIP 普及组 (1)
  • WebSocket分布式实现方案
  • 【LLaMA-Factory实战】1.3命令行深度操作:YAML配置与多GPU训练全解析
  • 数据库 1.0
  • wpf CommandParameter 传递MouseWheelEventArgs参数 ,用 MvvmLight 实现
  • 里氏替换原则(LSP)
  • Java 网络安全新技术:构建面向未来的防御体系
  • 强化学习--2.数学
  • 【Java学习】通配符?
  • 内存性能测试方法
  • 如何通过文理工三类AI助理赋能HI,从而,颠覆“隔行如隔山”的旧观念和“十万小时定律”的成长限制
  • 穿越数据森林与网络迷宫:树与图上动态规划实战指南
  • 【CF】Day50——Codeforces Round 960 (Div. 2) BCD
  • AVFormatContext 再分析零
  • 《告别试错式开发:TDD的精准质量锻造术》
  • Vivado FPGA 开发 | 创建工程 / 仿真 / 烧录
  • 印巴局势快速升级,外交部:呼吁印巴以和平稳定的大局为重
  • 水中托举救出落水孩童后遇难,42岁退役军人高武被确认为见义勇为
  • 什么让翻拍“语文”成为短视频新风潮
  • 南京明孝陵石兽遭涂鸦“到此一游”,景区:已恢复原貌,警方在排查
  • 美国得克萨斯州发生5.4级地震,震源深度10千米
  • AI世界的年轻人|研究不止于实验室,更服务于遥远山区