Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Skipalong's tistory

240216 TIL - redis 본문

TIL

240216 TIL - redis

Skipalong 2024. 2. 17. 02:04

오늘은 우리 프로젝트에서 email인증과 캐시에 사용했던redis에 대해 정리해보겠다.

1. redis란?
redis란 'Remote Dictionary Server' 약자로, 고성능의 Key-Value 스토어입니다. 이는 메모리 기반의 데이터 구조 서버로서, 데이터베이스, 캐시, 브로커(Pub/Sub모델을 통해 실시간 채팅, 이벤트알림 등) 등의 역할을 수행할 있다.
빠른 응답 시간과 높은 확장성을 필요로 하는 다양한 서비스에서 널리 사용

 

2. redis의 collection

    redis 는 이렇게 다양한 자료 구조를 지원한다.

 

3. SingleThread

    redis는 싱글스레드를 사용하여 동시성문제가 생기지 않고 작업을 들어온 순서대로 하나씩 처리한다. 또 Redis 4.0부터는 'Redis              Module' 지원하여, 사용자가 별도의 스레드를 생성해서 사용할 있게 되었고, Redis 6.0부터는 'IO Threading' 기능을 도입하여,      네트워크 I/O 작업을 병렬로 처리할 있게 되었습니다. 이런 기능을 통해 Redis 싱글 스레드 모델의 장점을 최대한 살리면서,

    멀티 스레드의 이점도 가져가고 있습니다.

 

4. replication, clutering

    Redis의 복제(Replication)와 클러스터링(Clustering)은 두 가지 중요한 기능으로, 데이터의 안전성과 확장성을 높이는 데 사용된다.

  1. 복제(Replication): Redis의 복제 기능은 한 개의 Redis 서버(주로 '마스터'라 불림)의 데이터를 하나 이상의 Redis 서버('슬레이브'라 불림)에 복사하는 기능입니다. 슬레이브는 마스터의 데이터를 실시간으로 복제받아, 마스터에 문제가 발생했을 때 데이터의 손실을 방지하거나, 읽기 요청의 부하를 분산하는 데 사용됩니다. 복제는 Redis 설정에서 간단하게 활성화할 수 있으며, 네트워크 분할이나 장애 상황에서도 잘 동작합니다.
  2. 클러스터링(Clustering): Redis 클러스터는 여러 개의 Redis 서버를 하나의 논리적인 작업 단위로 묶는 기능입니다. 이를 통해 Redis의 데이터와 처리능력을 수평적으로 확장할 수 있습니다. 클러스터는 데이터를 여러 노드에 분할(Sharding)하여 저장하므로, 하나의 노드에서 처리할 수 있는 데이터나 요청의 양을 넘어서는 큰 규모의 데이터를 처리할 수 있습니다. 또한, Redis 클러스터는 자동 복구 기능을 제공하여, 노드 장애가 발생해도 클러스터가 계속 작동하도록 합니다.

    이 가지 기능은 서로 독립적으로 사용할 있지만, 많은 경우에 함께 사용하여, 대규모의 데이터를 안정적으로 처리하고, 높은 가용성      을 보장하는 사용됩니다. 예를 들어, 클러스터의 노드는 복제 기능을 사용하여 자신의 데이터를 다른 노드에 복제함으로써,

    노드 장애에 대비할 있습니다.

 

이렇게 우리가 사용한 redis에 대한 이해가 부족했는데 조금이나마 이해가 깊어진 것 같다. redis가 활용되는 분야가 굉장히 많은 것 같아서 더 깊은 이해를 해두면 좋을 것 같다. 

'TIL' 카테고리의 다른 글

240223 TIL - 귤고르기  (0) 2024.02.24
240222 TIL - Programmers 추억점수  (0) 2024.02.23
240215 TIL - RDBMS의 정규화  (0) 2024.02.16
240214 TIL - 대용량트래픽 처리법  (0) 2024.02.15
240213 TIL - CacheEvict  (0) 2024.02.14