REDIS 10

[Python] Redis - 비동기 연결

개요2023.06.03-[Python] redis 사용하기, 2024.08.07-[Python] redis - pub/sub 구현하기에서 Python redis 라이브러리를 사용해 Redis에 접속해 메세지를 다뤄봤다.공식 문서를 보니, Python redis는 비동기 처리도 지원하고 있었다. 이번 글에서는 비동기 방식으로 redis에 접속하고 메세지를 보내는 방법 등을 적어둔다.  import비동기 방식으로 redis를 사용할 때는 redis.asyncio를 import하여 사용한다. 보통 redis라고 축약하여 사용하는 것 같다.import redis.asyncio as redis참고로 redis.asyncio의 모든 함수는 코루틴이다. 필연적으로 asyncio도 함꼐 import하여 사용하게 된다...

Python 2024.09.03

[Python] redis - pub/sub 구현하기

개요2024.07.30-[Redis] Pub/Sub 개념, 2024.07.31-[Redis] Pub/Sub - 테스트에서 Pub/Sub 개념을 알아보고 간단히 테스트해 봤는데, 이번 글에서는 Python을 이용해 redis Pub/Sub 기능 구현해보려고 한다. + Python redis 라이브러리의 기본적인 사용법은 2023.06.03-[Python] redis 사용하기를 참고한다.  SubscribePython redis 라이브러리는 채널을 구독하고 새 메세지를 수신할 수 있도록 하는 pubsub 객체를 제공한다.import redisr = redis.Redis(host='localhost', port=6379, decode_responses=True)pubpub = r.pubsub()pubpub.s..

Python 2024.08.28

[Redis] List 다루기

개요2023.06.01-[Redis] redis-cli로 데이터 읽고 쓰기에서 set, get 명령으로 문자열 데이터를 읽고 쓰는 방법을 살펴보았었다. 이번 글에서는 Redis에서 List를 다루는 방법을 정리해 본다.  ListRedis는 리스트 형태의 데이터 타입을 지원한다.LPUSH, RPUSH 명령으로 데이터를 추가하고 LPOP, RPOP 명령으로 데이터를 꺼낸다. 데이터를 조회할 때는 LRANGE, LLEN 명령을 사용한다.  명령어LPUSHkey의 리스트 왼쪽에 원소를 추가한다.LPUSH key element-- 예시LPUSH mylist 0다음과 같이 mylist라는 키에 값이 1인 원소를 가진 리스트가 있다고 하자.이 리스트에 LPUSH로 0을 추가하면 다음과 같은 상태가 된다.mylist..

Database 2024.08.26

[Redis] Pub/Sub - 테스트

개요2024.07.30-[Redis] Pub/Sub 개념에서 Publish, Subscriber 개념에 대해 적어두었었다. 이 글에서는 redis-cli를 사용해 직접 테스트를 해보자. 테스트를 하기 위해서는 먼저 Redis가 있어야 한다. 2023.05.30-[Redis] 개념 및 설치/실행을 참고하여 설치한다.또한 Publisher, Subscriber가 필요하므로 redis-cli를 각각 다른 세션에서 실행하여 테스트한다.   관련 명령어Publish, Subscribe와 관련된 명령어는 다음과 같다. 명령어설명subscribe  채널을 구독하여 메시지를 수신받는다.한 번에 여러 채널을 구독할 수 있다.publish 메시지를 채널에 송신한다.pubsub서버에 등록된 채널이나 패턴을 조회한다.psu..

Database 2024.08.21

[Redis] Pub/Sub 개념

개요이전에 2023.05.30-[Redis] 개념 및 설치/실행, 2023.06.01-[Redis] redis-cli로 데이터 읽고 쓰기 등으로 Redis에 대한 간략한 개념이나 데이터를 읽고 쓰는 방법에 대해 적어두었었는데, 최근 다시 Redis를 사용한 개발을 수행하게 되었다.관련하여 Pub, Sub라는 개념을 접하게 되어 적어둔다.  Pub/SubPub, Sub란 Publish, Subscribe의 줄임말로 Message Queue를 통해 데이터를 교환하는 방법 중 하나이다.Publish, Subscribe는 특정 주제(Topic)에 대해 구독한 수신자 모두에게 메시지를 발행하는 통신 방법이다. 즉, 하나의 클라이언트가 특정 Topic에 메시지를 Publish 하면, 해당 Topic에 연결되어 있는..

Database 2024.08.20

[Redis] 비밀번호 설정

개요 인터넷과 연결되어 있는 Ubuntu 서버에 Redis를 설치하고 모든 접속을 허용하게끔 설정해두었더니 기가 막히게도 해킹을 당했다. 저장해두었던 데이터가 사라지고 backup1, backup2…… 이라는 키에 crontab 규칙이 저장되어 있었다. 로그를 보니 타인에 의해 아래와 같은 명령어가 실행된 것 같았다. # 기본 로그 경로 view /var/log/redis/redis-server.log 일단 redis 포트를 변경해두었는데, 비밀번호까지 설정해두려고 한다. 방법을 적어둔다. redis 설정 편집 redis.conf 파일을 열고 SECURITY 항목을 확인하면 친절하게 관련 내용을 주석으로 설명하고 있다. /etc/redis/redis.conf requirepass 설정은 명령을 처리하기 ..

Database 2023.06.23

[Python] redis 사용하기

개요 2023.06.16 - [Redis] 개념 및 설치/실행 2023.06.19 - [Redis] redis-cli로 데이터 읽고 쓰기 위 두 개 글에서 Redis를 설치하고 cli을 이용해 간단히 데이터를 읽고 써봤다. 이 글에서는 Python을 이용해 redis에 접속하고 작업을 해보려고 한다. redis 패키지 설치 Python을 이용해 redis를 사용할 때는 redis 패키지 설치가 필요하다. 필요하다면 더 좋은 성능을 위해 hiredis를 지원하도록 설치해도 된다. pip install redis # 또는 pip install redis[hiredis] redis 모듈 import redis 모듈을 import 하여 사용한다. import redis redis 서버 접속 Redis 생성자에 ..

Python 2023.06.21

[redis] 서버 원격 접속 허용

개요 Redis도 MySQL과 비슷하게 기본적으로는 localhost의 접속만을 허용한다. 만약 다른 서버에서 redis를 접속해야 한다면 redis 서버에서 원격 접속을 허용해야 한다. 방법을 적어둔다. + redis는 Ubuntu 20.04 LTS에서 직접 설치했고, 방화벽 등의 네트워크 이슈는 없는 걸로 가정한다. Redis.conf 변경 Redis 서버의 설정 파일은 아래 경로에 위치하고 있다. /etc/redis/redis.conf 파일을 열고 NETWORK 관련 부분을 찾으면 친절하게 주석으로 네트워크 설정에 대한 내용이 포함되어 있다. Redis는 bind 설정이 지정되어 있지 않으면 모든 네트워크 인터페이스의 연결을 수신한다. 따라서 사진의 가장 아랫줄을 주석 처리하기만 하면 된다. 모든 ..

Database 2023.06.20

[Redis] redis-cli로 데이터 읽고 쓰기

개요 2023.06.16 - [Redis] 개념 및 설치/실행에서 redis를 설치해봤는데, 이 글에서는 redis-cli를 이용해 redis를 사용하는 방법을 간단히 정리해보려고 한다. 접속 redis-cli 명령어를 이용해 redis에 접근할 수 있다. 아무 옵션 없이 사용하면 localhost의 6379 port에서 동작하는 redis 서버 접속을 시도한다. redis-cli 접속 서버와 port를 지정하는 방법은 아래와 같다. redis-cli -h localhost -p 6379 기본적으로 대화형 모드로 사용할 수 있다. 데이터 쓰기 SET 명령어에 키와 값을 지정하여 데이터를 저장한다. SET key value [expiration EX seconds|PX milliseconds] [NX|XX..

Database 2023.06.19

[Redis] 개념 및 설치/실행

Redis '키-값' 구조의 비정형 데이터를 저장하고 관리하기 위한 비관계형 데이터베이스 관리 시스템(DBMS)으로, redis라는 이름은 REmote DIctionary Server의 약자이다. 살바토르 산필리포(Salvatore Sanfilippo)가 개발해 현재는 Redis Labs가 지원하는 오픈 소스 기반 데이터베이스다. 주로 데이터베이스, 캐시, 메시지 브로커, 스트리밍 엔진으로써 사용된다. 특징 - 인메모리 데이터베이스 Redis의 가장 큰 특징 중 하나는 데이터를 메모리로 불러와 처리하는 메모리 기반 DBMS, 즉 인 메모리 데이터베이스라는 점이다. 데이터를 디스크나 SSD에 저장하는 데이터베이스보다 빠른 성능을 기대할 수 있다. - 다양한 데이터 타입 strings, hashes, lis..

Database 2023.06.16
1