首页 > 编程语言 > 详细

SpringBoot使用Redis缓存

时间:2019-02-03 21:54:43      阅读:204      评论:0      收藏:0      [点我收藏+]

(1)、添加依赖

1         <dependency>
2             <groupId>org.springframework.boot</groupId>
3             <artifactId>spring-boot-starter-data-redis</artifactId>
4         </dependency>

(2)、配置Redis

1 spring.redis.host=192.168.205.128

(3)、使用

配置好Redis后,缓存注解就会把数据缓存到Redis中了,如果我们想要手动添加缓存可以使用

  • StringRedisTemplate  仅仅操作字符串
  • RedisTemplate  操作Key-Value对象

**Redis默认使用Jdk序列化机制(将对象序列化到Redis中必须要实现Serializable接口且缓存的数据是二进制),若要将数据以Json的形式序列化,可采用以下两种方式

  1.使用第三方jar包将对象转化为json

  2.更改redisTemplate默认的序列化规则

 1 package cn.coreqi.config;
 2 
 3 import cn.coreqi.entities.User;
 4 import org.springframework.context.annotation.Bean;
 5 import org.springframework.context.annotation.Configuration;
 6 import org.springframework.context.annotation.Primary;
 7 import org.springframework.data.redis.cache.RedisCacheConfiguration;
 8 import org.springframework.data.redis.cache.RedisCacheManager;
 9 import org.springframework.data.redis.cache.RedisCacheWriter;
10 import org.springframework.data.redis.connection.RedisConnectionFactory;
11 import org.springframework.data.redis.core.RedisTemplate;
12 import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
13 
14 @Configuration
15 public class MyRedisConfig {
16     @Bean
17     public RedisTemplate<Object, User> userRedisTemplate(RedisConnectionFactory redisConnectionFactory){
18         RedisTemplate<Object, User> template = new RedisTemplate<>();
19         template.setConnectionFactory(redisConnectionFactory);
20         template.setDefaultSerializer(new Jackson2JsonRedisSerializer<User>(User.class));
21         return template;
22     }
23 
24     @Primary
25     @Bean
26     public RedisCacheManager userCacheManager(RedisConnectionFactory redisConnectionFactory){
27         RedisCacheConfiguration configuration = RedisCacheConfiguration.defaultCacheConfig();
28         return RedisCacheManager.builder(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory))
29                 .cacheDefaults(configuration).build();
30     }
31 }
1 @Service
2 @CacheConfig(cacheNames = "user",cacheManager = "userCacheManager")   //抽取缓存的公共配置
3 //可以使用@Caching注解在方法上运用多个缓存注解
4 public class UserService {
5   .......      
6 }

*如何在代码中获取缓存

1     @Qualifier("userCacheManager")
2     @Autowired
3     private RedisCacheManager userCacheManager;
4 
5     public User cache(){
6         Cache user = userCacheManager.getCache("user");
7         return user.get("1",User.class);
8     }

 

SpringBoot使用Redis缓存

原文:https://www.cnblogs.com/fanqisoft/p/10351016.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!