簡介
springboot提供了許多的緩存類型,redis緩存配置只需要引入starter,修改相應的配置文件即可。更多內容
配置
- 添加starter
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 修改配置文件
spring:
redis:
host: 192.168.0.110
- 使用方法
spingboot 默認有2個模板提供使用
- RedisTemplate 可以存對象 ,默認的序列化方式是jdk的序列化方式
- StringRedisTemplate 只能存字符串
使用時,只需要注入即可,下面只演示了對象的存儲,字符串同理
@Autowired
RedisTemplate redisTemplate;
@Autowired
StringRedisTemplate stringRedisTemplate;
@Test
public void contextLoads() {
User user = new User();
user.setId(1);
user.setName("哈哈");
redisTemplate.opsForValue().set("user",user);
User user1 = (User) redisTemplate.opsForValue().get("user");
System.out.println(user1.getName());
}
序列化json存儲
- 新建JsonRedisTemplate
public class JsonRedisTemplate extends RedisTemplate {
}
- 創建redis配置類
@Configuration
public class RedisConfigtion {
@Bean
public JsonRedisTemplate cacheManager(RedisConnectionFactory redisConnectionFactory,
ResourceLoader resourceLoader) {
JsonRedisTemplate redisTemplate = new JsonRedisTemplate();
redisTemplate.setConnectionFactory(redisConnectionFactory);
//設置鍵的序列化爲字符串
redisTemplate.setKeySerializer(new StringRedisSerializer());
//設置值得序列化爲JSON
redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<Object>(Object.class));
return redisTemplate;
}
}
注意:如果需要序列化其他類型,改變序列化參數即可
- 使用例子
@Autowired
JsonRedisTemplate jsonRedisTemplate;
@Test
public void testRedis() throws JSONException {
User user = new User();user.setId(1);
user.setName("哈哈");
jsonRedisTemplate.opsForValue().set("user",user);
Object obj = jsonRedisTemplate.opsForValue().get("user");
LinkedHashMap map = (LinkedHashMap) obj;
JSONObject json = new JSONObject(map);
System.out.println(json.getString("name"));
}
總結
這只是一個簡單的配置用法,springboot的詳細用法需要參照其他文檔使用。