Python(17)
-
Redis를 활용한 Message Queue(Pub/Sub) 만들기 ( with python )
1. 우선 해당 모듈을 설치한다. pip install redis 2. publisher 만들기 import redis # Redis 클라이언트 생성 redis_client = redis.Redis(host='localhost', port=6379) # 채널에 메시지 발행 redis_client.publish('my-channel', 'Hello, world!') publish() 메서드를 사용하여 my-channel 채널에 메시지를 발행합니다. 3. subscriber 만들기 import redis # Redis 클라이언트 생성 redis_client = redis.Redis(host='localhost', port=6379) # 채널 구독 pubsub = redis_client.pubsub() pub..
2023.04.20 -
레디스(redis)에서 큐(Queue) 사용해보기
Redis-cli 에서 사용 하기 1. queue 생성 queue_name이라는 이름을 가진 리스트(큐)를 생성하고, hello 추가하는 명령어이다 LPUSH queue_name "hello" 2. queue 에서 데이터 추출 ( rpop ) Redis에서 앞에 있는 데이터부터 추출하는 명령어이다. ( FIFO ) RPOP queue_name 2. queue 에서 데이터 추출 ( lpop ) Redis에서 뒤에 있는 데이터부터, 추출하는 명령어이다. ( LIFO ) LPOP queue_name 파이썬에서 Redis 큐를 사용해보자 1. pip 설치 pip install redis 2. LPUSH 명령어 사용하기 import redis # Redis 연결 객체 생성 redis_client = redis.R..
2023.04.20 -
redis 와 python을 활용한 채팅 프로그램 만들기 ( Pub/Sub 활용 )
python과 redis를 활용해서 채팅프로그램 만드는 것을 알아보겠다. 기본적인 프로그램이다. 쉽게 따라해보길 바란다. 이 예제에서는 입력받은 채팅 메시지를 Redis의 Pub/Sub 메커니즘으로 발행(Publish)하는 클라이언트이다. import redis redis_client = redis.Redis(host='localhost', port=6379, db=0) 1. 구독(Subscribe)하는 클라이언트를 구현한다. def publish(channel): while True: message = input() redis_client.publish(channel, message) 위 코드에서는 입력받은 메시지를 redis_client.publish()를 이용하여 Redis의 Pub/Sub 메커니즘..
2023.04.20 -
주요 언어별 unix(정수타입 시간) timestamp 변환( 자바스크립트, 자바, 파이썬, c++ )
1. unix time 이란 Unix 타임스탬프는 1970년 1월 1일 자정부터 경과한 초 단위의 시간을 나타내는 정수값입니다. 예를 들어, 2021년 4월 11일 오후 5시 30분 15초를 Unix 타임스탬프로 나타내면 다음과 같습니다. 1618144215 이 값은 1970년 1월 1일 자정부터 1618144215초가 경과한 시점이라는 의미입니다. 이 값을 다시 일반적인 날짜 및 시간 형식으로 변환하면, 2021년 4월 11일 오후 5시 30분 15초임을 알 수 있습니다. 2. unix time에서 data로 변환 2-1. 자바스크립트 // 현재 Unix 타임스탬프 (밀리초) 가져오기 const unixTimestamp = Date.now(); // Unix 타임스탬프를 Date 객체로 변환하기 con..
2023.04.11 -
파이썬 멀티 프로세스 공유 메모리 설정 ( Manager )
0. Python Multi-processing Manager 란 Manager 객체는 multiprocessing 모듈에서 제공하는 메모리 공유 기능을 사용하기 위한 클래스입니다. Manager 객체는 프로세스 간에 데이터를 공유하기 위한 Proxy 객체를 생성하고, 이 객체를 통해 프로세스 간의 데이터를 동기화합니다. Manager 객체는 다음과 같은 자료구조를 생성할 수 있습니다. - 공유 리스트 (list) - 공유 딕셔너리 (dict) - 공유 세트 (set) - 공유 카운터 (Value) - 공유 배열 (Array) - 공유 네임드 튜플 (Namespace) - 공유 큐 (Queue) 위 자료구조들은 Manager 객체를 사용하여 생성되므로, 프로세스 간에 공유될 수 있습니다. 이를 통해 멀티..
2023.04.07 -
파이썬 멀티 쓰레드 예제 정리 ( Join, Lock, Queue )
0. 서론 threading 모듈을 이용하여 스레드를 생성하고, start() 메서드를 호출하여 스레드를 실행합니다. join() 메서드를 이용하여 스레드의 실행이 끝날 때까지 대기하거나, 반환 값을 받을 수 있습니다. Lock 객체를 이용하여 여러 스레드에서 공유하는 자원에 대한 동기화를 수행할 수 있습니다. Queue 객체를 이용하여 스레드 간 데이터를 전달하거나 작업을 분배할 수 있습니다. 1-1. 기본적인 스레드 생성과 실행 import threading def worker(num): print(f"Worker {num} started") print(f"Worker {num} finished") for i in range(5): t = threading.Thread(target=worker, ar..
2023.04.06