반응형
안녕하세요! 오늘은 Redis Utility 파이썬 클래스를 만들어 보겠습니다.
Redis를 처음 접하시는 분들은 이 포스팅을 참고하세요!
2023.11.10 - [파이썬(Python)] - [Redis] 초보자를 위한 Redis 입문하기 📈🗂
Redis?
Redis, 메모리 기반의 데이터 저장소로써의 속도와 효율성을 탐구하다! 데이터베이스의 세계에서, 속도는 금이죠. 🏃💨 여기서 '금'이라면, Redis는 바로 그 '금맥'입니다! 이 키-밸류 스토어는 그 빠른 성능으로 유명한데, 그 이유는 바로 메모리 내 데이터 관리 때문이죠. Python 사용자들을 위해, redis-py 라이브러리가 그 금맥을 캐는 도구입니다. 🛠️
이제 본격적으로 RedisUtility.py 파일을 만들어볼 시간! 이 파일은 여러분의 Python 프로젝트가 Redis의 마법과 만나게 해줄 거예요. ✨
RedisUtility 클래스 디자인
import redis
import json
class RedisUtility:
def __init__(self, host='localhost', port=6379, db=0):
self.r = redis.Redis(host=host, port=port, db=db)
def _id_key(self, id):
# 데이터베이스 내에서 사용할 고유 키를 생성하는 보조 함수입니다.
return f"record:{id}"
def set(self, id, data):
# 데이터를 삽입하거나 기존 데이터를 업데이트합니다.
key = self._id_key(id)
self.r.set(key, json.dumps(data))
def get(self, id):
# 키를 이용해 데이터를 조회합니다.
key = self._id_key(id)
data = self.r.get(key)
if data:
return json.loads(data)
return None
def delete(self, id):
# 특정 키의 데이터를 삭제합니다.
key = self._id_key(id)
return self.r.delete(key)
def write(self, data):
# 고유 ID를 자동으로 생성하며 데이터를 저장합니다.
id = self.r.incr('id_counter') # id_counter를 사용하여 고유한 ID를 생성합니다.
self.set(id, data)
return id
RedisUtility 클래스 활용 예
# RedisUtility 사용 예시
# RedisUtility 인스턴스 생성
redis_util = RedisUtility()
# 데이터 쓰기
new_id = redis_util.write({'name': 'Alice', 'email': 'alice@example.com'})
print(f"새 레코드가 생성되었습니다. ID: {new_id}")
# 데이터 업데이트
redis_util.set(new_id, {'name': 'Alice', 'email': 'alice@newdomain.com'})
# 데이터 조회
record = redis_util.get(new_id)
print(f"ID {new_id}의 레코드: {record}")
# 데이터 삭제
redis_util.delete(new_id)
print(f"ID {new_id}의 레코드가 삭제되었습니다.")
데이터의 세계에서 빠른 속도로 승부하는 여러분, 오늘의 여정이 어떠셨나요? RedisUtility 클래스를 통해 Python과 Redis의 만남이 얼마나 강력한지 경험하셨을 겁니다. 이 클래스는 여러분이 데이터를 순식간에 저장하고 검색할 수 있게 도와줄 것입니다. 💫
Redis를 처음 접하는 분들도 걱정 마세요. '초보자를 위한 Redis 입문하기' 포스트와 함께라면, 이 데이터베이스의 기초부터 차근차근 시작할 수 있습니다. 📘🚀 2023.11.10 - [파이썬(Python)] - [Redis] 초보자를 위한 Redis 입문하기 📈🗂
반응형
'프로그래밍 언어(Programming Languages) > 파이썬(Python)' 카테고리의 다른 글
[Python] 파이썬 리스트에서 요소를 효과적으로 삭제하는 법 🧹 (22) | 2023.11.18 |
---|---|
[Python] Python에서의 효율적인 데이터 관리: defaultdict의 마법! 🐍✨ (26) | 2023.11.17 |
[Python] 🎒 Python의 컬렉션 상자들: 어떤 상자를 언제 써야 할까요? 📦 (29) | 2023.11.15 |
[Python] 🧙♂️✨ 빅데이터 저장 공간 최적화: Parquet의 압축 기능과 CSV 비교 (3) | 2023.11.14 |
[Python] Virtual Environment 마스터하기 (4) | 2023.11.12 |