Redis 3

Redis Pub/Sub을 활용해보자!

레디스에 다양한 자료구조가 등장하는데, 이때 Redis Pub/Sub에 대한 것이 존재한다. Publish/Subscibe 란? 특정한 주제에 대해서 해당 topic을 구독한 모두에게 메세지를 발행하는 통신 방법으로 채널을 구독한 통신자 모두에게 메세지를 전송하는 것을 의미한다. 즉, 특정 topic 이라는 Queue에 메세지를 쏘고 있다면, 해당 메세지를 구독하고 있는 객체들에게 메세지가 전달 되는 것을 의미한다. Redis의 pub/sub Redis에서 제공하는 pub/sub의 중요한 포인트는 "속도"이다. In-memory 기반의 DB이기 때문에 빠를 수 밖에 없다. 그러나, 안정성 면에서는 별로 좋지는 않다. 네트워크 환경의 오류가 판치는 세상에서 전송 보장 및 수신 보장이 되지 않는다면 안정성 ..

Redis 2023.08.19

Redis의 개념

Redis라는 DB가 굉장히 핫하다. 채용 공고에서 Redis가 없는 것을 본적이 없는 것 같다. 그러면 Redis가 뭔지, 어떤 문제점을 가지는지, 혹은 어떤 장점을 지니는지 생각해보자. Redis란? redis는 remote dictionary server 라는 것으로 key-value 형태로 데이터를 저장하는 형식을 가지는 DB 서버이다. 다루기 쉬운 구조와 빠르다는 장점을 통해서 많이들 사용하는 것 같다. 그렇다면 왜 빠른 걸까? 운영 체제 공부를 하다보면 메모리 부분에서 많이 보이는 그림이다. 위로갈수록 비싸고 빠르고 적게 저장할 수 있고, 밑으로 갈 수록 싸고 느리고 많이 저장할 수 있는 trade off가 있다. 지금까지 DB의 저장 방식은 하드 디스크를 활용해서 저장하는 방식이었다. 하지만..

Redis 2023.07.28

RedisQueue와 FastAPI

Redis란? 우선 Redis란 무엇인지 알아보자면 key-value 형태로 되어 있는 비관계형 데이터 베이스 시스템이다. 정말 좋은 RDB나 Nosql이 있음에도 불구하고 이것을 쓰는 이유는 캐시, 혹은 로그인 시의 세션, 메세지 브로커 등으로 활용되기 때문이다. 그 중 우리는 메세지 브로커로서, MessageQueue로 활용되는 경우를 찾아보겠다. RedisQueue를 활용하는 이유는? 직접적으로 Client에게 정보를 전달하게 된다면 어떤 문제점이 있을까? 첫째로, 순서가 정해져 있을 때에 순서를 보장할 수 없다. 둘째로, 비동기적인 처리를 할 때에 너무 빠르게 한꺼번에 여러 요청이 들어와 병목현상이 일어날 수 있다. 이와 같은 문제를 해결하기 위해서 Queue에 넣어서 하나씩 처리하는 방법으로 진..

Redis 2023.07.10