일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- CentOS
- Redis
- deep learning
- phpredis
- SQL
- AWS
- 블레이드 템플릿
- Redux
- linux
- Babel
- php
- NCP
- python
- Node
- Backbone.js
- fastapi
- Machine Learning
- mariadb
- rabbitmq
- Go
- 기초 수학
- javascript
- React
- nodejs
- docker
- webpack
- Switch
- nginx
- For
- laravel
- Today
- Total
개발일기
Python - Redis 연결 ( FastAPI ) 본문
1. Redis 의존성 설치
pip3 install redis
# 패키지 매니저 pip을 통해 redis관련 패키지 의존성 설치
pip을 통해 redis 의존성을 추가했다고 해서, OS에 레디스 서버가 설치되는 것과는 별개이다. AWS RDS와 같은 외부 서버에 설치되어 있는 레디스 서버에 접속하려는 경우에는 의존성 추가만으로도 충분하지만, 만약 로컬에 설치되어 있는 레디스 서버에 접속하려는 경우에는 추가적으로 레디스 서버의 설치가 필요하다.
https://phsun102.tistory.com/51
자신의 OS가 CentOS인 경우 위의 글을 참조하여 설치를 진행할 수 있다. Window와 Mac과 같은 다른 운영체제인 경우는 Redis 공식 홈페이지에서 설치를 하거나 OS 패키지 매니저 choco, brew를 활용하여 설치를 진행할 수 있다.
https://phsun102.tistory.com/62
https://phsun102.tistory.com/63
Python의 FastAPI 프레임워크를 바탕으로 Redis 연결을 진행할 것이기에 해당 글들을 참조하여 설정한 후 진행하면 된다.
2. routes 설정
# routes/test.py에 해당 함수 추가
@router.get("/redis_test")
async def redis_test():
res = await test.redis_test()
return {
"res": res,
} # Redis 결과
url 경로 마지막이 /redis_test인 경우 해당 redis_test() 함수를 실행시킨다.
3. redis_config.py 파일 생성
# core/redis_config.py
# core 디렉터리에 redis_config.py라는 파일을 새로 만든다.
import os
from dotenv import load_dotenv
import redis
load_dotenv()
def redis_config() :
try:
REDIS_HOST = str = os.getenv("REDIS_HOST")
REDIS_PORT = integer = os.getenv("REDIS_PORT")
REDIS_DATABASE = integer = os.getenv("REDIS_DATABASE")
rd = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, db=REDIS_DATABASE)
# redis.StrictRedis( ... ) 라고도 사용할 수 있다
# Python의 버전이 3으로 업데이트 되면서 함수명이 변경되었다
# 하지만 버전 호환을 위해 StrictRedis로도 연결을 할 수 있다
# 즉, Redis = StrictRedis로 동일한 기능을 하는 함수이다
except:
print("redis connection failure")
# .env
REDIS_HOST = localhost
REDIS_PORT = 6379
REDIS_DATABASE = 0
Redis의 호스트, 포트, 데이터베이스 번호를 .env 파일에 추가하였기 때문에 os.getenv()를 통해 가져온다.
redis.Redis()에 호스트와, 포트, 데이터베이스 번호를 인자값으로 추가한다.
4. api 함수 수정
# apis/test.py
from sqlalchemy.orm import Session
from crud import crud_test
from core.redis_config import redis_config
# redis 설정파일 불러오기
def test_index(db):
something = crud_test.get_items(db)
return something
# url이 /items/redis_test일 경우 실행되는 함수
async def redis_test():
rd = redis_config()
rd.set("juice", "orange") # set
return {
"data": rd.get("juice") # get
}
Redis 사용을 위해 rd = redis_config() 변수 선언을 진행한다. rd 변수를 통해 Redis의 set, get 등의 함수를 사용하여 데이터를 조회 및 추가할 수 있다.
- set : Redis에 Key, Value 형식으로 데이터를 저장한다
- get : Key 값을 통해 Value 값을 가져온다
Key값을 juice로 설정하고 Value는 orange로 설정하였다.
5. API 문서 및 API 테스트
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python - Matplotlib 그래프의 기초 (0) | 2023.12.22 |
---|---|
Python - Pydantic Model 생성 (2) | 2022.01.25 |
Python - FastAPI DB Connection ( SQLAlchemy ) (0) | 2021.12.03 |
Python - FastAPI 프레임워크란? (0) | 2021.12.01 |
Python - Type Hinting (0) | 2021.12.01 |