redis(8)
-
redis를 활용한 api 로그 count 관리
redis를 활용한 api 로그 count 관리하는 법에 대해 알아 보겠다. 이번 요청 사항은 스마트팩토리 팀에서 api의 call 되는 count 수를 물어봤다. aws 지표를 보여주니 믿지 못한다. 이유는 그렇게 많이 api를 호출 될 일이 없다고 이야기했다. api가 100만건 호출되는게 그렇게 많은 건 아닌데, 믿지 못하시 조금 답답했다. 그리고 apache log도 aws 모니터링 지표도 믿지 않으면..?!?!? 무엇을 믿고 싶은 것일까? 의문이 들었다. 그냥 만들어 달라고 해서, 나는 오늘도 만든다.. api의 성능 저하를 주지 않고, 사소한 요구사항이 합쳐져서 그냥 redis로 api call 하는 기능을 만들어 보기로 했다. 특별한 이유는 없다. 그냥 평소에 redis incr를 써보고 싶..
2023.05.02 -
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 -
Redis 데이터 백업, 디스크 저장 방법 ( AOF, RDB, 스냅샷 )
0. 서론 Redis는 기본적으로 메모리 내에 데이터를 저장하는 인메모리 데이터베이스 이다. 근데, 메모리에만 데이터를 저장하니, 데이터가 비정상 종료 및 재부팅 시 날라가는 특징이 있다. 그래서 redis에서는 메모리에 저장된 데이터를 디스크로 저장하는 방법을 제공한다. 1. 방법RDB(Redis DataBase) : Redis 데이터베이스의 스냅샷을 저장하는 방식이 있다. 스냅샷 파일의 이름은 "dump.rdb"로 고정되고, 대규모 데이터를 다룰 때 매우 효율적이다. 스냅샷은 Redis 서버의 메모리 내용을 그대로 디스크에 저장해, 빠르고 경제적인 방법이다. 하지만 스냅샷 주기를 길게 설정하면 데이터 손실 가능성이 높아지며, 짧게 설정하면 성능에 영향을 미친다. AOF(Append Only File)..
2023.03.21 -
REDIS로 IOT 데이터 처리 및 관리- ( XRANGE )
0. 서론 Redis의 스트림(Stream) 데이터 구조와 XRANGE 명령어는 대규모 IoT 데이터 처리에 적합한 솔루션 중 하나이다. 이는 시간에 따라 시리즈로 생성되는 IoT 데이터를 저장하고 검색하기에 최적화되어 있으며, 대용량 데이터 처리 및 분석에 최적화되어 있다. 또한 Redis는 인 메모리 데이터베이스로 분류되어 있어 디스크 I/O와 같은 병목 현상이 발생하지 않으므로 데이터 업데이트 및 검색 성능을 높일 수 있다. 1. 데이터 추가하기(XADD) 다음 명령어를 사용하여 iot 데이터를 추가할 수 있습니다. XADD iot_data_stream * tagA 120 위 명령어는 iot_data_stream이라는 이름의 Redis 스트림(Stream)에 tagA라는 이름의 센서에 해당하는 값을..
2023.03.20