DB/Redis
Redis Class 및 Interface | 어노테이션 | redis-cli | 메소드
잔망루피
2022. 7. 27. 22:38
✨ Class 및 Interface 정리
Interface RedisConnectionFactory | Thread-safe factory of Redis connections. |
Class LettuceConnectionFactory | Luttuce를 기반으로 연결을 생성하는 Connection factory |
Class RedisTemplate<k, v=""></k,> | object와 binary data 사이에 자동으로 serialization/deserialization을 수행한다. thread-safe하다. |
Interface CacheManager | 스프링의 중심 캐시 매니저 SPI SPI는 Synchronous serial communication 주로 임베디디 시스템에서 근거리 통신에서 사용되는 인터페이스 사양 |
Class RedisCacheConfiguration | 캐싱 null 값들, 캐시 키 접두사, 이진 serialization과 같은 RedisCache 동작을 커스터마이징하는 것을 돕는다. defaultCacheConfig()로 시작하고 RedisCache 동작을 커스터마이즈한다. defaultCacheConfig()는 key expiration, cache null values, prefix cache keys, default prefix, key serializer, value serializer, conversion service를 사용해 구성됨 disableCachingNullValues() 캐싱 null 값들을 사용하지 않는다. entryTtl(Duration ttl) cache entries에 적용할 ttl을 설정한다. serializeKeysWith(RedisSerializationContext.SerializationPair<String> keySerializationPair) 캐시 키의 deserializing/serializing에 사용되는 RedisSerializationContext.SerializationPair을 정의한다. |
👑 어노테이션
@Cacheable | 캐시가 있으면 캐시의 정보를 가져오고, 없으면 등록 결과가 저장될 캐시 이름 @Cacheable("phone") 메소드의 결과 값이 캐싱된다. |
@CachePut | 무조건 캐시에 저장 메소드 실행 후에 실행된다. |
@CacheEvict | 캐시 삭제 단일/복수 개의 값을 삭제 allEntries : 캐시 내의 모든 엔트리를 지운다. 메소드의 반환값이 void도 가능함 |
😎 redis-cli
get 키이름 | 데이터 타입이 String일 때 키의 값을 가져옴 (nil)은 해당 키가 없을 때 출력됨 시간 복잡도 O(1) |
hget 키이름 필드명 | 데이터 타입이 Hash일 때 키의 값을 가져옴 (nil)은 해당 키가 없을 때 또는 해당 필드가 없을 때 출력됨 시간 복잡도 O(1) |
keys * | 모든 키 찾기 |
del 키이름 | 키 삭제 (integer) 1은 성공적으로 키가 삭제되었을 때 출력됨 (integer) 0은 해당 key가 없을 경우 출력됨 |
ttl 키이름 | 초단위로 만료되기까지 남은 시간 출력 (integer) -2는 key값이 없거나 소멸된 경우 출력 (integer) -1은 기한이 없는 경우 출력 |
flushall | 모든 key 삭제 |
💡메소드 정리
ZSetOperations<K, V> opsForZSet() | zset operations를 반환 zset values는 sorted sets라고도 함 |
Set<ZsetOperations.TypedTuple<V>> reverseRangeWithScores(K key, long start, long end) | 내림차순 정렬된 sorted set에서 start부터 end까지의 RedisZSetCommands.Tuples 집합을 얻는다. |
TreeSet() | SortedSet 인터페이스의 구현체 새로운 비어있는 tree set을 생성 |
Set<V> reverseRangeByScore(K key, double min, double max, long offset, long count) |
높은 -> 낮은 순서로 정렬된 세트에서 점수가 최소와 최대 사이인 시작부터 끝까지 범위의 요소를 가져온다. |
✨ Serializer
StringRedisSerializer() | Strings ↔️ bytes 기본 charset은 UTF-8 |
GenericJackson2JsonRedisSerializer() | object ➡️ JSON |
JdkSerializationRedisSerializer() | RedisTemplate 클래스가 사용하는 기본 Serialization |
😎 사용 방법
크게 두 가지 방법이 있다.
1. CrudRepository를 상속받은 RedisRepository 인터페이스를 생성한다.
마치 JPA를 사용하는 것 같다.
https://tecoble.techcourse.co.kr/post/2021-09-01-redis/
2. RedisTemplate 클래스의 메소드 이용
참고 👇
https://redis.io/commands/?group=list
https://www.baeldung.com/spring-boot-evict-cache
https://freeblogger.tistory.com/10
https://shortstories.gitbooks.io/studybook/content/cache.html
https://souljit2.tistory.com/72
반응형