springboot配置redis緩存

簡介

springboot提供了許多的緩存類型,redis緩存配置只需要引入starter,修改相應的配置文件即可。更多內容

配置

  1. 添加starter
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  1. 修改配置文件

spring:
  redis:
    host: 192.168.0.110

  1. 使用方法

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存儲

  1. 新建JsonRedisTemplate
public class JsonRedisTemplate extends RedisTemplate {
}
  1. 創建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;
        }
    }
    

注意:如果需要序列化其他類型,改變序列化參數即可

  1. 使用例子
@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的詳細用法需要參照其他文檔使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章