在Spring Boot中,Redis缓存仍然可以像这样使用!

发布者:上海IT外包来源:http://www.lanmon.net点击数:984

在Spring Boot的集成打包和自动化配置之后,将Redis集成到Spring Boot中变得非常容易。开发人员只需要引入Spring Data Redis依赖项,然后简单地配置redis的基本信息。该系统将为开发人员提供RedisTemplate。使用,但今天宋歌想跟大家说话不是这个用法,而是使用Cache。 Spring 3.1引入了令人兴奋的Cache。在Spring Boot中,Redis可以用作Cache实现来促进数据缓存。
项目创建
首先创建一个Spring Boot项目,注意创建三个依赖项,web,cache和redis,如下所示:
相应的依赖关系如下:
Org.springframework.boot
春天开机起动器缓存
Org.springframework.boot
弹簧引导起动数据的Redis
Org.springframework.boot
春天开机起动器的Web

基本配置
创建项目后,需要配置Redis和Redis的基本信息。此外,您需要在此处使用Cache,因此您需要稍微配置Cache,如下所示:
Spring.redis.port=6380
Spring.redis.host=192.168.66.128
Spring.cache.cache-名=C1
为了简单起见,我在这里只配置了Redis的端口和地址,然后给缓存命名,稍后将使用。此外,您需要将以下代码添加到配置类以指示已启用缓存:
@SpringBootApplication
@EnableCaching
公共类RediscacheApplication {
Public static void main(String [] args){
SpringApplication.run(RediscacheApplication.class,args);
}
}
完成这些配置后,Spring Boot将在后台自动配置RedisCacheManager。相关配置在org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration类中完成。一些源代码如下:
@组态
@ConditionalOnClass(RedisConnectionFactory.class)
@AutoConfigureAfter(RedisAutoConfiguration.class)
@ConditionalOnBean(RedisConnectionFactory.class)
@ConditionalOnMissingBean(CacheManager.class)
@Conditional(CacheCondition.class)
类RedisCacheConfiguration {
@豆
公共RedisCacheManager cacheManager(RedisConnectionFactory redisConnectionFactory,
ResourceLoader resourceLoader){
RedisCacheManagerBuilder builder=RedisCacheManager
.builder(redisConnectionFactory)
.cacheDefaults(determineConfiguration(resourceLoader.getClassLoader()));list cacheNames=this.cacheProperties.getCacheNames();
如果(!cacheNames.isEmpty()){
builder.initialCacheNames(new LinkedHashSet(cacheNames));
}
返回this.customizerInvoker.customize(builder.build());
}
}
查看类上的注释,发现在所有内容的情况下,系统将自动提供RedisCacheManager bean。此RedisCacheManager在Spring中间接实现Cache接口。使用这个bean,我们可以直接在Spring中使用缓存注释。接口和缓存的数据将自动存储在Redis上。在独立的Redis中,会自动提供此Bean系统。如果它是Redis集群,则此bean需要由开发人员提供(在下面的文章中描述)。
缓存使用
这里主要是向朋友们介绍缓存中的几个核心注释。
@CacheConfig
此批注在类上用于描述类中所有方法使用的高速缓存名称。当然,您可以直接在特定缓存注释上配置名称,而无需使用注释。示例代码如下:
@服务
@CacheConfig(cacheNames='c1')
公共类UserService {
}
@Cacheable
此注释通常添加到查询方法中,这意味着缓存了方法的返回值。默认情况下,缓存的键是方法参数,缓存的值是方法的返回值。示例代码如下:
@Cacheable(key='#id')
公共用户getUserById(整数id,字符串用户名){
的System.out.println( 'getUserById');
返回getUserFromDBById(id);
}
当有多个参数时,默认是使用多个参数来执行该键。如果只需要其中一个参数来执行密钥,则可以通过key属性在@Cacheable注释中指定密钥。上面的代码表示只使用了id。缓存的密钥,如果您对密钥有复杂的要求,则可以自定义keyGenerator。当然,Spring Cache提供了一个根对象,可以在不定义keyGenerator的情况下实现一些复杂的效果:@CachePut
通常会将此注释添加到更新方法中。更新数据库中的数据时,还会更新缓存中的数据。使用此批注,方法的返回值可以自动更新为现有密钥。示例代码如下:
@CachePut(key='#user.id')
公共用户updateUserById(用户用户){
退货用户;
}
@CacheEvict
通常会将此注释添加到delete方法中。删除数据库中的数据时,也会自动清除相关的缓存数据。注释还可以配置为根据特定条件(条件属性)删除,或配置为在使用时清除所有缓存。 (allEntries属性),示例代码如下:
@CacheEvict()
Public void deleteUserById(Integer id){
//这里执行删除操作,删除是删除数据库
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部