Spring[Info] - Redis

2021. 7. 2. 14:00Spring/Spring[Info]

반응형

Reference

개발자를 위한 레디스 튜토리얼 01 : NHN Cloud Meetup

🤔 Redis ?

  • Remote DIctionary Server
  • 레디스는 In-Memory 데이터베이스
  • 즉, 모든 데이터를 메모리에 저장하고 죄회
  • 기존 관계형 데이터베이스 보다 훨씬 빠름
  • 다양한 자료 구조를 지원

* DB CRUD작업 시 Redis cache에 저장하여 비교 작업후 DB에 접근하는 방식을 주로 사용한다.

* Redis cache에 DB data가 있는지 확인 후 실제 DB에 접근하기 때문에 부하량이 적어진다.

Redis 자료 구조

String

  • 레디스의 String은 키와 연결할 수 있는 가장 간단한 유형의 값
  • 키가 문자열이므로 이 구조는 문자열을 다른 문자열에 매핑하는 것
  • string 타입에는 '모든 종류의 문자열'을 저장할 수 있음
  • jpeg, html fragment 을 캐시하는 용도로 자주 사용
  • 최대 사이즈는 512MB

list

  • 레디스의 list는 일반적인 linked list의 특징을 갖고 있음
  • list 내에 수백만 개의 아이템이 있더라도 head와 tail에 값을 추가할 때 동일 시간 소요
  • 특정 값, 인덱스로 데이터를 찾거나 삭제 가능
  • 특히 'Pub-Sub(생산자-소비자)' 패턴으로 주로 사용됨

Hash

  • hash는 field-value 쌍을 사용한 일반적인 해시
  • key에 대한 filed의 갯수에는 제한이 없으므로 여러 방법으로 사용 가능

Hash의 일반적인 구조

Set

  • set은 정렬되지 않은 문자열의 모음
  • 아이템은 중복될 수 없음
  • 교집합, 합집합, 차집합 연산을 레디스에서 수행할 수 있기 때문에 set은 객체 간의 관계를 표현할 때 좋음

Sorted Set

  • set과 동일하게 key 하나에 중복되지 않은 여러 멤버를 저장하지만, 각각의 멤버는 스코어에 연결됨
  • 모든 데이터는 이 값으로 정렬되며, 스코어가 같다면 멤버값의 사전순서로 정렬
  • 주로 sort가 필요한 곳에서 사용됩니다.

그외..

  • bit / bitmap
  • hyperloglogs
  • Geospatial indexes
  • Stream
반응형