[Redis]Spring Data Redis RedisTemplate

yeonjoo913·2023년 6월 10일
0

Redis

목록 보기
2/7

지난 게시물에서는 redisRepository를 사용하여 데이터를 저장해보았다.
TTL이 없는 set element 이슈로 인해 이번에는 redisTemplate을 사용해보고자 한다.

redisTemplate 특징

  • TTL을 직접 설정 할 수 있다.
  • 캐시를 사용하는 클래스마다 redisTemplate를 주입받아 사용해야하는 한계점이 존재한다.
  • redisTemplate은 Serialize,Deserialize로 String을 사용하는 StringRedisTemplate을 통해 redis 서버에 데이터를 CRUD를 할 수 있는 operation interface를 제공한다.
    -> 그래서 redisTemplate을 사용하는 관심사를 분리하고 스프링의 캐시와 비슷하면서 ttl을 설정 할 수 있는 aop를 만들어서 사용하는 것이다.
메서드설명
opsForValueStrings를 쉽게 Serialize / Deserialize 해주는 Interface
opsForListList를 쉽게 Serialize / Deserialize 해주는 Interface
opsForSetSet를 쉽게 Serialize / Deserialize 해주는 Interface
opsForZSetZSet를 쉽게 Serialize / Deserialize 해주는 Interface
opsForHashHash를 쉽게 Serialize / Deserialize 해주는 Interface

코드 예시

  1. redisTemplate 주입
  2. redis 저장
Map<String,Object> map = new HashMap();
map.put("id","test");
map.put("name","홍길동");

HashOperations<String,Object,Object> hashOperations = redisTemplate.opsForHash();
hashOperations.putAll("KEY",map);
redisTemplate.expire("KEY",3,TimeUnit.MINUTES);
  • putAll() : map으로 저장시 사용. String 타입의 경우 add()로 사용가능
  • hash type은 메모리공간을 작게 차지한다. key값으로 데이터를 쉽게 구분하기 위해 사용
  • key에 대한 expire 시간은 각각 설정가능
  1. redis 조회
redisTemplate.opsForHash().get("KEY","name");
  • get()으로 조회
  • 지정한 hashKey를 사용하여 조회 가능
profile
주니어 백엔드 개발자. 까먹는다 기록하자!

0개의 댓글