在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 : profiles : active : druidserver : 8080 redis : host : 127.0.0.1port : 6379 password : database : 0 timeout : 1800000
创建Redis配置类
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport
{ @Bean @SuppressWarnings ( value = { "unchecked" , "rawtypes" } ) public RedisTemplate < Object , Object > redisTemplate ( RedisConnectionFactory connectionFactory) { RedisTemplate < Object , Object > template = new RedisTemplate < > ( ) ; template. setConnectionFactory ( connectionFactory) ; FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer ( Object . class ) ; template. setKeySerializer ( new StringRedisSerializer ( ) ) ; template. setValueSerializer ( serializer) ; template. setHashKeySerializer ( new StringRedisSerializer ( ) ) ; template. setHashValueSerializer ( serializer) ; template. afterPropertiesSet ( ) ; return template; } }
缓存工具类
@SuppressWarnings ( value = { "unchecked" , "rawtypes" } )
@Component
public class RedisCache { @Autowired public RedisTemplate redisTemplate; public < T > void setCacheObject ( final String key, final T value) { redisTemplate. opsForValue ( ) . set ( key, value) ; } public < T > void setCacheObject ( final String key, final T value, final Integer timeout, final TimeUnit timeUnit) { redisTemplate. opsForValue ( ) . set ( key, value, timeout, timeUnit) ; } public boolean expire ( final String key, final long timeout) { return expire ( key, timeout, TimeUnit . SECONDS) ; } public boolean expire ( final String key, final long timeout, final TimeUnit unit) { return redisTemplate. expire ( key, timeout, unit) ; } public long getExpire ( final String key) { return redisTemplate. getExpire ( key) ; } public Boolean hasKey ( String key) { return redisTemplate. hasKey ( key) ; } public < T > T getCacheObject ( final String key) { ValueOperations < String , T > operation = redisTemplate. opsForValue ( ) ; return operation. get ( key) ; } public boolean deleteObject ( final String key) { return redisTemplate. delete ( key) ; } public boolean deleteObject ( final Collection collection) { return redisTemplate. delete ( collection) > 0 ; }
}
使用