1.首先导入使用Maven导入jar包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency>
2.在application.properties配置信息
# Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=localhost # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空) spring.redis.password=123456 # 连接池最大连接数(使用负值表示没有限制) spring.redis.pool.max-active=200 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.pool.max-wait=-1 # 连接池中的最大空闲连接 spring.redis.pool.max-idle=10 # 连接池中的最小空闲连接 spring.redis.pool.min-idle=0 # 连接超时时间(毫秒) spring.redis.timeout=1000ms
3.编写Redis工具类
@Configuration @ConditionalOnClass(RedisOperations.class) //系统中有RedisOperations类时 @EnableConfigurationProperties(RedisProperties.class) //启动RedisProperties这个类 @EnableCaching // www.1b23.com public class RedisConfig extends CachingConfigurerSupport { @Autowired RedisTemplate redisTemplate; // 配置缓存管理器 @Bean public RedisCacheManager cacheManager(RedisConnectionFactory connectionFactory) { LettuceConnectionFactory jedisConnectionFactory = (LettuceConnectionFactory) redisTemplate.getConnectionFactory(); jedisConnectionFactory.setDatabase(2); //指定dbindex redisTemplate.setConnectionFactory(jedisConnectionFactory); jedisConnectionFactory.resetConnection(); RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig() .entryTtl(Duration.ofSeconds(60*20)) // 20分钟缓存失效 // 设置key的序列化方式 // .entryTtl(Duration.ofSeconds(10)) .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())) // 设置value的序列化方式 .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new FastJsonRedisSerializer(Object.class))) // 不缓存null值 .disableCachingNullValues(); RedisCacheManager redisCacheManager = RedisCacheManager.builder(connectionFactory) .cacheDefaults(config) .transactionAware() .build(); return redisCacheManager; } }
package com.FireService.config; import java.nio.charset.Charset; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.SerializationException; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.parser.ParserConfig; import com.alibaba.fastjson.serializer.SerializerFeature; public class FastJsonRedisSerializer<T> implements RedisSerializer<T> { public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); private Class<T> clazz; static { ParserConfig.getGlobalInstance().addAccept("com.FireService"); } public FastJsonRedisSerializer(Class<T> clazz) { super(); this.clazz = clazz; } @Override public byte[] serialize(T t) throws SerializationException { if (null == t) { return new byte[0]; } return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET); } @Override public T deserialize(byte[] bytes) throws SerializationException { if (null == bytes || bytes.length <= 0) { return null; } String str = new String(bytes, DEFAULT_CHARSET); return (T) JSON.parseObject(str, clazz); } }
4.SpringBoot有关缓存的几个注解
@Cacheable:查询
可选属性:
cacheNames/value:指定缓存组件的名字;
key:缓存数据使用的key,可以用来指定。默认即使用方法参数的值
keyGenerator:key的生成器,可以自己指定key的生成器的组件id
//自定义配置类配置keyGenerator @Configuration public class MyCacheConfig { @Bean("myKeyGenerator") public KeyGenerator keyGenerator(){ return new KeyGenerator() { @Override public Object generate(Object target, Method method, Object... params) { return method.getName()+"["+ Arrays.asList(params).toString() +"]"; } }; } }
cacheManager:指定缓存管理器;或者cacheResolver获取指定解析器
condition:指定符合条件的情况下才缓存;如condition="#id>0"
unless:否定缓存,当unless指定的条件为true,方法的返回值不会被缓存,可以获取到结果进行判断;如unless="#result==null";
sync:是否使用异步模式
例如:
@Cacheable(value = "RedisInfo", key = "#root.methodName+'['+#account+']'") @ResponseBody @RequestMapping("/RedisTest") public Result findUserOrder(String account) throws Exception{ if(account!=null) { List<Map<String, Object>> list=orderFindGoods.findUserOrder(account); return Results.successWithData(list, BaseEnums.SUCCESS.code(), BaseEnums.SUCCESS.desc()); }else { return Results.failure(); } }
相关推荐
**SpringBoot项目SSM+Redis整合** 在现代Web开发中,SpringBoot因其便捷的配置、快速的开发体验而被广泛采用。本项目是基于SpringBoot框架进行构建的,旨在实现SSM(Spring、SpringMVC、Mybatis)的经典组合与Redis...
总的来说,SpringBoot、Mybatis和Redis的整合为Java开发者提供了一个强大、灵活且高效的开发环境,它可以帮助我们构建出高可用、高性能的Web应用。通过深入理解这三个组件以及它们之间的协同工作,开发者可以更好地...
在SpringBoot项目中,MybatisPlus与Redis的整合可以实现高效的数据缓存,提升应用程序的性能。本项目中,我们看到“SpringBoot项目 MybatisPlus使用 Redis缓存.zip”主要涉及了SpringBoot、MybatisPlus和Redis三个...
**SpringBoot整合Redis** 1. **配置Redis**: 在SpringBoot项目中,可以通过`application.properties`或`application.yml`文件配置Redis连接信息,包括主机地址、端口、密码等。 2. **添加依赖**: 在`pom.xml`文件...
- 使用 MyBatis 的注解方式时,需要在 Mapper 接口上添加 `@Mapper` 注解。 6. **注解与 @MapperScan 比较**: - `@Mapper` 放在接口上,意味着每一个接口都必须有这个注解。 - `@MapperScan` 提供了包扫描的...
首先,让我们来看看"Springboot整合Redis集群,零配置方式"。在Spring Boot中,我们可以通过引入`spring-boot-starter-data-redis`依赖来启用Redis支持。但是,要配置Redis集群,通常需要设置多个节点地址、密码、...
【标题】"springBoot+mysql+redis基础项目"是一个适合初学者入门的IT项目,它结合了Spring Boot、MySQL和Redis三个关键组件,构建了一个基本的后端数据处理框架。这个项目的核心目标是帮助新手理解如何在实际开发中...
《SpringBoot、MyBatis与Redis的整合应用详解》 在现代Web开发中,SpringBoot以其简洁的配置、快速的启动以及丰富的生态成为了许多开发者首选的框架。而MyBatis作为轻量级的持久层框架,以其灵活的SQL操作和优秀的...
在本项目"springboot+mysql+redis集成Demo"中,我们将探讨如何将Spring Boot框架与MySQL数据库和Redis缓存服务进行整合,以实现一个高效、可扩展的应用程序。以下是对这个集成过程的关键知识点的详细说明。 1. **...
综上所述,"SpringBoot整合shiro、redis集成mybatis"这个主题涉及到了现代web应用开发中的多个关键组件。通过这些组件的集成,我们可以构建出具有安全认证、权限控制、高效缓存和灵活数据库操作的复杂应用。这种架构...
总结,"myredis_redis_springboot_springboot+Redis_DEMO_"项目旨在演示如何在SpringBoot应用中整合和使用Redis,涵盖从基本的Redis连接到高级的缓存和消息队列功能。通过学习这个DEMO,开发者可以迅速掌握...
4. **Redis 配置**:`RedisConfig.java`,配置 Redis 连接池及序列化方式。 5. **MyBatis 配置**:`MybatisConfig.java`,包含 MyBatis 的配置,如 SqlSessionFactory 的创建。 6. **Mapper 接口和 XML 文件**:定义...
3. **SpringBoot整合Redis** - **添加依赖**:在SpringBoot项目中,首先需要在`pom.xml`或`build.gradle`文件中引入Redis的依赖,通常使用`spring-boot-starter-data-redis`起步依赖。 - **配置Redis**:在`...
描述中提到的“spring boot 集成redis”是一个示例项目,提供了如何在Spring Boot应用中整合Redis的具体步骤。通过访问提供的博客链接(http://blog.csdn.net/woniu211111/article/details/54564308),我们可以深入...
1、springboot 整合ehcache+redis 通过配置文件application.yml切换缓存类型 2、ehcache 、redis 通过缓存管理器管理 3、可分别设置缓存的过期时间 ehcache :添加依赖 pom.xml 2、添加配置文件ehcache.xml 3、添加...
**二、SpringBoot整合Redis** 1. **添加依赖**:在`pom.xml`中引入SpringBoot的Redis Starter。 ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-data-redis ``` 2. **配置Redis*...
SpringBoot2整合Redis多数据源步骤详解 SpringBoot2整合Redis多数据源是一个非常重要的知识点, especially 在分布式系统中,REDIS作为一个高性能的Key-Value数据库,广泛应用于缓存、Session管理、消息队列等领域...
《SpringBoot、MySQL与Redis整合应用详解》 在现代的Web开发中,SpringBoot以其简洁的配置、快速的启动和强大的功能,已经成为Java开发者首选的框架之一。本项目"springboot_mysql_redis-master.zip"旨在展示如何在...
SpringBoot通过`spring-boot-starter-data-redis`起步依赖,可以方便地配置和使用Redis,包括设置连接池、数据序列化方式等。 **4. Redis缓存MySQL数据** 在SpringBoot应用中,可以使用Spring Data Redis库提供的`...
**SpringBoot + MyBatis + Redis 项目简介** ...总的来说,这个项目是学习SpringBoot、MyBatis和Redis整合的一个基础平台,通过它,开发者可以迅速掌握这三大技术的使用,并为后续的复杂项目打下坚实的基础。