Redis

728x90
반응형

 

 


 

String

  • 텍스트, 직렬화된 개체 및 이진 배열을 포함하여 바이트 시퀀스를 저장합니다.
  • 문자열은 Redis 에서 가장 기본적인 데이터 유형입니다.
  • 캐싱에 자주 사용되며, 카우터를 구현하고 비트연산을 수행할 수 있는 추가 기능도 지원
  • 단일 Redis 문자열은 최대 512MB 입니다.

 

 

 

 

 

기본명령

-- 단일 문자열 저장
SET <key> <value>
GET <key>


-- 다중 문자열 저장
MSET <key1> <value1> <key2> <value2> <key3> <value3> ...
MGET <key1> <key2> <key3> ...


-- 키가 아직 존재 하지 않을 경우에만 문자열 값 저장
SETNX <key> <value>

 

  • Value 가 숫자형태라면, 증감도 가능하다. INCR, INCRBY, INCRBYFLOAT
  • atomic 하게 증감하는 커멘드이다.
-- 정수
INCR <key>
INCRBY <key> <number>


-- 부동소수점
INCRBYFLOAT <key> <number>

 

 

 

 

 

참조

https://redis.io/commands/?group=string

 

 

 

 

 

END


 

 

 

 

 

 

728x90
728x90
반응형

 

 

 

들어가며

개인 적으로 좀 더 정리하고자 늦은감은 있지만 Redis에 대해서 정리 중입니다. 

Redis 에서 가장 많이 사용되는 Collection에 대한 내용과, 데이터 타입의 종류에 대해서 간략하게 정리해보려고 합니다.

 

 

 

 

 

Collection 이 중요한 이유

  • 다양한 자료구조를 지원합니다.
  • 다양한 자료구조를 Key-Value 형태로 저장합니다.
  • 개발의 편의성과 난이도 제공.
  • 외부의 Collections을 잘 이용하는 것만으로 개발 시간 단축이 가능하고, 생각하지 못한 여러가지 문제를 줄여줄 수 있으므로 개발자는 비즈니스 로직에 집중할 수 있다는 큰 장점이 존재합니다.

 

 

 

 

주된 Redis 사용처

원격 데이터 저장소로 사용되며, 각 서버의 데이터를 공유하고 싶을 때 사용됩니다.

  • 인증 및 토큰 저장소
  • 랭킹
  • 유저 세션관리
  • Pub/Sub 을 이용한 Backplane

 

 

 

 

Redis Collections 주의사항

  • 데이터 컬렉션을 잘못 선택해서 속도 차이가 날 수 있음.
  • Expire는 Collection의 아이템 개별로 걸리지 않고 전체 Collection에 대해서만 걸린다.
  • 하나의 컬렉션에 너무 많은 아이템을 담지 않는 것이 좋음. 예를 들어 리스트에 요소가 100000개 들어 있다던가, hash에 key가 10000개 있다던가. 한 컬렉션에는 아이템 n천개 수준이 좋음. 가능하면 1만개를 넘어가지 않게 하자.

 

 

 

 

레디스 자료 구조

  • 문자열 (Strings)
  • 리스트 (Lists)
  • 집합 (Sets)
  • 해시 (Hashes)
  • 정렬된 집합 (Sorted Sets)
  • 스트림 (Streams)
  • 지리공간 인덱스 (Geospatial Indexes)
  • 하이퍼로그로그 (HyperLogLog)
  • 비트맵 (Bitmaps)
  • 비트필드 (Bitfields)

 

 

 

 

참조

https://ict-nroo.tistory.com/133

https://sjh836.tistory.com/178

https://medium.com/garimoo/개발자를-위한-레디스-튜토리얼-01-92aaa24ca8cc

 

 

 

 

 

END


 

 

 

 

728x90

[Redis] 레디스 개요

2023. 1. 13. 10:27
728x90
반응형

 

 

 

 

 

 

들어가며

요즘 서버 환경을 구성하는 단계에서 빠지지 않는 구성중에 하나라고 생각이 듭니다.

개인 적으로 좀 더 정리하고자 늦은감은 있지만 Redis에 대해서 정리하였습니다.

 

 

 

 

 

1. Redis 란?

레디스는 REmote DIctionary Server 를 나타내는 약자로서, 2009년 살바토르 산필리포(Salvatore Sanfilippo)가 C언어로 레디스를 개발했다.

Key-Value 형식의 고성능의 In-memory 데이터베이스로서, 모든 데이터를 메모리에 저장하기 때문에 읽기와 쓰기 명령이 매우 빠른 장점을 가지고 있다.

2015년부터 Redis Labs이 지원하고 있으며, 모든 데이터를 메모리로 불러와서 처리하는 메모리 기반 DBMS이다.

개방형 소스 (BSD 라이선스) 를 따른다.

 

 

 

 

 

 

2. Redis의 주요 특징

  1. 디스크가 아닌 메모리 기반의 데이터 저장소이다. (In-Memory Data Structure Store)
  2. 레디스는 싱글 스레드로 동작한다.
  3. 싱글 스레드로 동작하는 서버의 모든 자료구조는 Atomic 하기 때문에 Race Condition을 피해 데이터의 정합성을 보장하기 쉽다.
  4. 레디스는 빠른 데이터 접근 속도와 데이터의 일관성 (Consistency) 를 보장하기 때문에, 캐싱과 Session 에 많이 사용된다.
  5. 레디스는 데이터를 디스크에 저장 할 수 있다.
  6. 레디스의 데이터 영속성 (Data Persistence)은 저장된 데이터를 바이너리 스냅샷으로 생성하거나, 시간에 결쳐 실행된 모든 커맨드를 순서대로 저장해 사람이 읽을 수 있는 파일로 생성함으로써 이루어질 수 있다. 이 두 방식은 스냅샷 (Snapshotting)과 저널링(Journaling) 이다.
  7. 레디스는 키 만료 (Key Expiration)와, 트랜젝션 (Transaction), 게시/구독(publish/subscribe) 기능을 설정 할 수 있다.
  8. 부하 분산에 용이한, Master / Slave (Replication) 이 가능하다.

 

 

 

 

 

3. Redis의 활용

  1. Load Balance 개발 환경에서의 User Session 처리
  2. 게임서버에서의 Ranking 처리
  3. 3-Tier (Web - WAS - DB) 구조에서의 DB 성능부하를 줄여 줄 Cache 처리
  4. 웹소켓 환경에서의 각 서버와의 데이터 BroadCast 및 BackPlane 처리를 위한 Redis의 Pub/Sub 기능
  5. In-Memeory 디비만을 이용한 데이터 저장소 처리

 

 

 

 

 

참조

https://meetup.toast.com/posts/224

https://velog.io/@hyeondev/Redis-란-무엇일까

https://velog.io/@mu1616/레디스-Redis의-개념-특징

 

 

 

 

 

END


 

 

 

 

728x90

+ Recent posts