Redis

    Redis - Pipelining

    Redis하면 뭐가 떠오를까 ? - 캐시이므로 빠른 성능 - key-value - 인메모리 db - Single thread - atomic Single thread vs Multi Thread redis는 부분적으로 Single thread와 Multi Thread를 함께 사용한다. 클라이언트로 부터 전송된 네트워크를 읽는 부분과 전송하는 부분은 Multi Thread로 구현되어있으며 우리가 redis에 요청한 명령을 실행하는 부분은 Single thread로 구현되어 있다. 때문에 single thread의 장점인 Atomic한 요청 처리가 가능한 것이다. I/O : 네트워크 connection Event Loop : 명령 실행부분 위와 같은 방식을 활용한다면 클라이언트가 네트워크 패킷을 여러번 보냈..

    실습으로 배우는 선착순 이벤트 시스템 - review

    실습으로 배우는 선착순 이벤트 시스템이란 것을 인프런에서 시청했다. kafka를 통해 영감을 받거나 새로운 insight를 얻은 것을 정리하려고 한다. https://www.inflearn.com/course/%EC%84%A0%EC%B0%A9%EC%88%9C-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%8B%A4%EC%8A%B5/dashboard 실습으로 배우는 선착순 이벤트 시스템 - 인프런 | 강의 선착순 이벤트 시스템을 구현할 때 어떤 문제가 발생할 수 있고 어떻게 해결할 수 있는지 배워봅니다., - 강의 소개 | 인프런 www.inflearn.com 쿠폰 서비스 개발하기 100개의 쿠폰을 선착순으로 개발할 예정이고 1000명이 해당 쿠..

    PUB/SUB 채팅서비스 redis ? kafka

    이번 소프트웨어마에스트로 서비스에서 채팅서비스를 운영하면서 웹소켓의 stomp구조를 사용하게되었다. STOMP란 무엇일까 ? (Simple/Stream Text Oriented Message Protocol) websocket 위에서 동작하는 문자 기반 메세징 프로토콜로써 클라이언트와 서버가 전송할 메세지의 유형 형식 내용들을 정의하는 매니즘 TCP와 웹소켓과 같은 신뢰할 수 있는 양방향 스트리밍 네트워크 프로토콜 기본적으로 pub/sub 구조이며, 메세지 전송하고 받아 처리하는 부분이 확실히 정해져 있다. http 와 마찬가지로 frame을 사용해 전송하는 프로토콜 여기서 pub/sub 란 무엇인지 또 알아보겠습니다. 1. 이벤트메세지를 발행하는 publisher가 존재하고, publisher는 특정 ..

    동시성문제 -> Redis Redisson

    재시도가 필요하지 않은 Lock은 Lettuce를 활용할 것이고 재시도가 필요한 경우에는 Redisson을 사용할 것 입니다. setnx 메소드는 만약 키가 존재하지 않는다면 설정하게 되는 것이므로 Redis 에 계속해서 LockKeyName 이 존재하는지 확인해야만 합니다. 따라서 순회하는 동안 계속해서 Redis 에 요청을 보내게 되는 것이므로 스레드 혹은 프로세스가 많다면 Redis 에 부하가 가게 될 것이기 때문에 재시도가 필요한 경우에는 Redisson 방식을 사용할 것입니다 Redisson - Pub-Sub 기반으로 Lock 구현 제공 - Pub-Sub 방식이란, 채널을 하나 만들고, 락을 점유중인 스레드가, 락을 해제했음을, 대기중인 스레드 에게 알려주면 대기중인 스레드가 락 점유를 시도하는..