Infra/AWS

Redis Cluster 데이터 백업 과정 파이썬으로 실행하기

jimmy_AI 2023. 11. 3. 23:03
반응형

AWS의 Redis Cluster에서 생성된 데이터를 저장 및 불러오기를 통하여

백업하는 방법을 Python으로 실행하는 코드 예제를 간단히 다루어보도록 하겠습니다.

 

여기서는 pickle 파일을 통하여 백업 파일을 전달하는 예시를 다루겠습니다.

 

 

Redis Cluster 데이터 저장하기

Redis URL A에 있는 redis 내 정보를 pickle 파일로 저장하는 예시 코드는 다음과 같습니다.

from redis.cluster import RedisCluster
import pickle

rc = RedisCluster.from_url(
    "Redis URL A"
)

data = {}

keys = rc.keys("*")
for key in keys:
    data[key] = rc.hgetall(key)

with open("redis_backup.pkl", "wb") as f:
    pickle.dump(data, f)

 

Redis URL A의 데이터베이스에 저장된 정보들이 redis_backup.pkl 파일 내에

모두 저장되었습니다.

 

 

Redis Cluster 데이터 불러오기

이번엔 위에서 저장한 pickle 파일의 정보를 다른 Redis URL B에 dump하는 방법의

코드 스니펫을 살펴보도록 하겠습니다.

from redis.cluster import RedisCluster
import pickle

with open("redis_backup.pkl", "rb") as f:
    data = pickle.load(f)

rc = RedisCluster.from_url(
    "Redis URL B"
)

for hash_key in data.keys():
    for key, value in data[hash_key].items():
        rc.hset(hash_key, key, value)

 

위의 과정을 거치면 Redis URL B의 데이터베이스에 정보 백업이 가능합니다.

 

참고로, 이는 Redis URL ARedis URL B다른 계정에서 생성된 것이더라도 가능하니

유용하게 활용이 가능합니다.