블로그

[Web] Oracle Cloud를 활용한 Web Server 환경 구축 (4) - Redis in python 본문

프로그래밍/Web

[Web] Oracle Cloud를 활용한 Web Server 환경 구축 (4) - Redis in python

이동헌 2024. 5. 1. 20:56

이번엔 Database 서버의 redis를 python으로 제어하기 위한 환경을 구축해보자.

 

우선 pip설치가 필요하다.

sudo apt-get install python3-pip

 

pip 설치가 끝나면, redis 패키지를 설치하자.

pip install redis

 

  python을 켜서 다음과같이 레디스를 연결한다. host에 redis가 있으므로 host="localhost"이고, 다른 서버에 있는 레디스를 불러오는 경우 redis가 있는 서버 주소를 입력하면 된다.

python3
>>> import redis
>>> rd = redis.StrictRedis(host="localhost", port=6379, db=0)

 

redis 연결 후 사용법은 다음과 같다.

- rd.set("key", "value") : "key"-"value" 추가

- rd.get("key") : "key"에 해당하는 "value" 반환

- rd.delete("key") : "key"에 해당하는 데이터 삭제

- rd.flushdb() : 데이터 전체삭제

 

  한편, UTF-8 인코딩이 사용된 데이터의 경우, 인코딩/디코딩에 문제가 있어 json dumps()/loads()를 통해 데이터를 저장/읽기를 해야한다고 한다. 다음은 내가 참조한 사이트의 사용 예시인데, 아래 글을 보면 의문점이 좀 있었다(첫 datas 선언에 utf-8 문자를 넣지않아 재정의 했다..ㅋㅋ).

 

  위 사진을 보면 중간에 datas 배열을 jsonDatas로 변환한 뒤 rd.get("data")했을 때 인코딩이 그대로 출력된 것이 보인다. 그래서 얻어온 데이터를 decode하는 과정이 있어야 데이터를 온전히 확인할 수 있다. 그런데 이 decode 이후에 json.loads()를 하는 코드가 이해되지 않는데, 왜냐하면 위에 디코딩되지 않은 result값을 그대로 json.loads() 호출할 때 써도 동일한 결과를 얻을 수 있기 때문이다.

 

추가로 dict 타입으로 명시적인 타입변환을 한 것도 이해되지 않는다. 사진을 보면 decode 직후 데이터는 str이지만, dict로 선언한 데이터, json.loads()로 얻은 데이터 모두 dict타입을 갖기 때문이다.

 

  아무튼, 간단하게 python으로 redis사용하는 방법을 확인해봤다. 다음에는 웹 서버에서 데이터베이스 서버에 접속하여 데이터 교환하는 방법을 확인 및 테스트해볼 예정이다.

 

참고 레퍼런스

https://soyoung-new-challenge.tistory.com/117