본문 바로가기
728x90
반응형

공부211

[redis] node.js 환경에서 redis 분산 락 구현하기 개요현재 제가 진행 중인 프로젝트는 api 서버와 websocket 서버가 별도의 프로세스로 띄워져서 동작하고 있습니다. 여기서 api 서버와 websocket 서버가 같은 자원을 공유하고 있어서 동시성 문제를 해결하기 위해 분산 락을 적용하기로 했습니다.처음에는 npm의 simple-redis-mutex 패키지를 사용하였는데 원인 모를 에러가 계속 발생하더라고요...https://www.npmjs.com/package/simple-redis-mutex simple-redis-mutexMutex lock implemented using redis. Latest version: 2.1.0, last published: a month ago. Start using simple-redis-mutex in yo.. 2025. 1. 10.
[redis] redis의 transaction redis transactionredis의 transaction 기능을 사용하면 여러 명령어들을 한 번에 실행할 수 있습니다. redis에서 다음 명령어를 통해 transaction 기능을 사용할 수 있습니다. MULTI : 트랜잭션을 시작합니다. 이후 실행하는 명령어들을 모두 큐에 저장합니다.EXEC : 트랜잭션 안에서 큐에 저장된 연산들을 실행하고 connection 상태를 normal로 되돌립니다.DISCARD : 트랜잭션 안에서 큐에 저장된 연산들을 제거하고 connection 상태를 normal로 되돌립니다. 만약 WATCH가 적용되어 있었다면 WATCH를 취소합니다.WATCH : key에 watch를 적용하면 EXEC 명령어는 오직 해당 key가 변경되지 않았을 때만 실행합니다.redis tr.. 2025. 1. 9.
[AWS] ssh key forwarding (Windows) Bastion Host란?Bastion Host는 외부 네트워크와 내부 프라이빗 네트워크 사이의 게이트웨이 역할을 수행한다. 클라우드 환경에서 보안이 중요한 EC2를 private subnet에 생성했다고 하자. private subnet에 생성된 EC2는 외부 네트워크로부터 직접적인 트래픽을 받지 못 하고 직접적으로 트래픽을 보내지도 못 한다. 오직 같은 VPC 내부에서 접근이 가능하다.  그런데 AWS와 같은 퍼블릭 클라우드 공급 업체를 사용할 경우 어떻게 private subnet에 존재하는 EC2 인스턴스에 접근할 수 있을까? 여러가지 방법이 있지만 그 중 하나는 Bastion Host를 사용하는 것이다. Bastion Host 역할을 할 EC2 인스턴스를 public subnet에 생성하고 보안.. 2024. 11. 5.
[MySQL] Procedure 사용법 Procedure란?Procedure는 여러 개의 쿼리 문을 한 번의 실행으로 실행시킬 수 있게 해준다. 만약 Procedure를 사용하지 않고 여러 개의 쿼리문을 실행할 경우 무슨 문제가 발생할까? 만약 데이터베이스가 클라우드에 배포되어 있고 애플리케이션 서버가 여러 개의 쿼리문을 보낸다면 이 쿼리문을 처리하는 속도는 네트워크의 영향을 받는다. 그에 비해 Procedure는 여러 개의 쿼리 문을 묶어서 서버에서 한 번에 실행하기 때문에 네트워크의 영향을 덜 받는다. 단점은 다음과 같다. 프로시저에 비즈니스 로직이 들어가기 때문에 연산이 많다면 cpu 사용량이 늘어나 성능이 저하될 수 있다. 또한 복잡하고 가독성이 좋지 않기 때문에 유지 보수 비용이 늘어난다. 장점 네트워크의 트래픽을 줄일 수 있다. .. 2024. 9. 30.
728x90
반응형