springBoot上集成redis缓存
来源:互联网 发布:vivo的软件商店 编辑:程序博客网 时间:2024/06/01 08:17
springBoot上集成redis
1.pom.xml引入jar包,如下
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2.修改项目启动类,增加注解@EnableCaching,开启缓存功能,如下:
package springboot;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cache.annotation.EnableCaching;import org.springframework.scheduling.annotation.EnableScheduling;@SpringBootApplication@EnableScheduling@EnableCachingpublic class SpringbootApplication{ public static void main(String[] args) { SpringApplication.run(SpringbootApplication.class, args); }}
3.application.properties中配置Redis连接信息,如下:
# Redis数据库索引(默认为0)spring.redis.database=0# Redis服务器地址spring.redis.host=172.31.19.222# Redis服务器连接端口spring.redis.port=6379# Redis服务器连接密码(默认为空)spring.redis.password=# 连接池最大连接数(使用负值表示没有限制)spring.redis.pool.max-active=8# 连接池最大阻塞等待时间(使用负值表示没有限制)spring.redis.pool.max-wait=-1# 连接池中的最大空闲连接spring.redis.pool.max-idle=8# 连接池中的最小空闲连接spring.redis.pool.min-idle=0# 连接超时时间(毫秒)spring.redis.timeout=0
4.新建Redis缓存配置类RedisConfig,如下:
package springboot.config;import org.springframework.beans.factory.annotation.Value;import org.springframework.cache.CacheManager;import org.springframework.cache.annotation.CachingConfigurerSupport;import org.springframework.cache.annotation.EnableCaching;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.cache.RedisCacheManager;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;import com.fasterxml.jackson.annotation.JsonAutoDetect;import com.fasterxml.jackson.annotation.PropertyAccessor;import com.fasterxml.jackson.databind.ObjectMapper;/** * Redis缓存配置类 * @author szekinwin * */@Configuration@EnableCachingpublic class RedisConfig extends CachingConfigurerSupport{ @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.timeout}") private int timeout; //自定义缓存key生成策略 @Bean public KeyGenerator keyGenerator() { return (target, method, params) -> { StringBuilder sb = new StringBuilder(); sb.append(target.getClass().getName()); sb.append(method.getName()); for (Object obj : params) { sb.append(obj.toString()); } return sb.toString(); }; } //缓存管理器 @Bean public CacheManager cacheManager(RedisTemplate redisTemplate) { RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate); //设置缓存过期时间(秒) cacheManager.setDefaultExpiration(10000); return cacheManager; } //序列化反序列化 @Bean public RedisTemplate<String, String> redisTemplate(JedisConnectionFactory factory) { StringRedisTemplate template = new StringRedisTemplate(factory); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); template.setValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; }}
5.注解含义如下:
@Cacheable将查询结果缓存到redis中,(key="#p0")指定传入的第一个参数作为redis的key。 @CachePut,指定key,将更新的结果同步到redis中 @CacheEvict,指定key,删除缓存数据,allEntries=true,方法调用后将立即清除缓存
6.具体使用如下:
@CacheConfig(cacheNames = "users")public interface UserRepository extends JpaRepository<User, Long> { @Cacheable(key = "#p0") User findByName(String name); @CachePut(key = "#p0.name") User save(User user);}
阅读全文
1 0
- springBoot上集成redis缓存
- SpringBoot 集成Jedis操作Redis缓存
- 微服务,微架构[四]之springboot集成Redis缓存
- SpringBoot集成Redis来实现缓存技术方案
- SpringBoot集成Redis来实现缓存技术方案
- SpringBoot集成Redis来实现缓存技术方案
- SpringBoot集成Redis实现缓存处理(Spring AOP技术)
- SpringBoot -- 集成Redis/CacheManager
- SpringBoot -- 集成Redis/CacheManager
- springboot集成redis
- springboot集成Redis
- springboot 集成redis 哨兵
- springboot集成Redis
- SpringBoot集成Redis
- springboot集成redis详解
- 关于SpringBoot 集成 Redis
- SpringBoot集成Redis
- springboot集成redis
- disparity_filter
- Chrome谷歌浏览器“隐身模式”是什么?如何开启?
- https://www.intelnervana.com/security-nervana-part-2-securing-data/
- thinkphp的一些常用路径
- Log4j2 使用自定义Logger, Log中打印不出类名
- springBoot上集成redis缓存
- Java的21个技术点
- chromium之WebUI
- hdu1584蜘蛛牌DP
- java中组合语法
- GameObject类
- 英语快照大会
- 使用JMF实现java写自己的视频播放器
- Java并发基础——Thread