정리하고기록하자

Redis 본문

Spring

Redis

정리하고기록하자 2023. 9. 22. 13:32
반응형

 

Redis란

Redis란 Key, Value 구조로 데이터를 저장하고 관리하는 데이터 베이스 관리 시스템이다.

Redis가 무엇인지 서치 해보거나 다른 개발자 분들에게 물어볼때마다 데이터를 Key, Value로 관리하는 저장소 라고 몇번이고 들었다.

Key, Value로 데이터를 관리 한다는 얘기는 너무 많이 들어서 어떤 특징이 있는지 찾아보았다.


Redis의 특징

  • Key, Value 구조로 되어 있으며 쿼리를 사용할 필요가 없다.
  • 데이터를 디스크에 쓰는 구조가 아니라 메모리에서 데이터를 처리 하기 때문에 속도가 빠르다.
  • String, Lists, Sets, Sorted Sets, Hashed 자료 구조를 지원한다.
    • String : 가장 일반적인 Key - Value 구조의 형태이다.
    • Sets : String의 집합이다. 여러 개의 값을 하나의 Value에 넣을 수 있다.
    • Sorted Sets : 중복된 데이터를 담지 않는 Set 구조에 정렬 Sort를 적용한 구조로 랭킹 보드 서버 같은 구현에 사용 할 수 있다.
    • Lists : Array 형식의 데이터 구조이다. List를 사용하면 처음과 끝에 데이터를 넣고 빼는 건 빠르지만 중간에 데이터를 삽입하거나 삭제하는 것은 어렵다
  • Single Threaded이다.
    • 한 번에 하나의 명령만 처리할 수 있다. 그렇기 때문에 중간에 처리 시간이 긴 명령어가 들어오면 그 뒤에 명령어들은 모두 앞에 있는 명령어가 처리될 때까지 대기하다가 처리된다.
      ( 하지만 get, set 명령어의 경우 초당 10만 개 이상 처리할 수 있을 만큼 빠르다 )

Redis 사용 시 주의점

  • 서버에 장애가 발생했을 경우에 그에 대한 운영 플랜이 필요하다.
    • 인메모리 데이터 저장소의 특성상, 서버에 장애가 발생했을 경우 데이터 유실이 발생할 수 있기 때문이다.
  • 메모리 관리가 중요하다.
  • 싱글 스레드의 특성상, 한 번에 하나의 명령만 처리할 수 있다. 처리하는데 시간이 오래 걸리는 요청, 명령은 피해야 한다.

 

반응형

'Spring' 카테고리의 다른 글

Spring Boot Batch  (0) 2024.07.29
DB 생성하기  (0) 2023.11.28
Spring-boot 신규 프로젝트 만들기 (2)  (0) 2023.11.28
Spring-boot 신규 프로젝트 만들기 (1)  (2) 2023.11.28
@RequiredArgsConstructor  (0) 2023.09.18