AI/AI 서비스 개발
[AI 서비스 개발] Redis 기초 문법(with python)
brave_sol
2025. 2. 18. 23:35
1. redis 연결
import redis
# Redis 클라이언트 생성
r = redis.Redis(host='localhost', port=6379, db=0)
# 연결 테스트
print(r.ping()) # True가 출력되면 정상 연결
2. 문자열 데이터
1) 저장: set
r.set("mykey", "hello")
2) 조회: get
- get은 바이트 데이터를 반환해, decode("utf-8")로 문자열 변환
value = r.get("mykey")
print(value.decode("utf-8")) # hello
3) 데이터 삭제: del
r.delete("mykey")
4) 만료 시간 설정: expire
r.set("temp", "temporary")
r.expire("temp", 10) # temp 키를 10초 동안 유지 후 자동 삭제
5) 남은 만료 시간 확인: ttl
print(r.ttl("temp")) # 남은 시간 출력
6) +1: incr
r.set("counter", 1)
r.incr("counter") # 2로 증가
print(r.get("counter").decode("utf-8")) # 2
7) -1: decr
r.decr("counter") # 1로 감소
print(r.get("counter").decode("utf-8")) # 1
3. 리스트
1) 앞에(왼쪽) 추가: lpush
2) 뒤에(오른쪽) 추가: rpush
r.lpush("mylist", "apple") # ["apple"]
r.lpush("mylist", "banana") # ["banana","apple"]
r.rpush("mylist", "cherry") # ["banana","apple", "cherry"]
3) 리스트 조회: lrange
print(r.lrange("mylist", 0, -1)) #인덱싱 처음부터 마지막(포함)까지
# [b'banana', b'apple', b'cherry']
4) 앞에(왼쪽)제거: lpop → 제거된걸 반환
5) 뒤에(오른쪽)제거: rpop → 제거된걸 반환
print(r.lpop("mylist").decode("utf-8")) # banana (왼쪽에서 제거)
print(r.rpop("mylist").decode("utf-8")) # cherry (오른쪽에서 제거)
4. SET (중복 허용 안함)
1) 추가: sadd
r.sadd("myset", "apple")
r.sadd("myset", "banana")
r.sadd("myset", "apple") # 중복 추가 안됨
2) 조회: smembers
print(r.smembers("myset")) # {b'apple', b'banana'}
5. 해시(딕셔너리 형태)
1) 저장: hset
r.hset("user:1001", "name", "Alice")
r.hset("user:1001", "age", 25)
2) 특정 값 조회: hget
print(r.hget("user:1001", "name").decode("utf-8")) # Alice
3) 전체 해시 조회:hgetall
print(r.hgetall("user:1001"))
# {b'name': b'Alice', b'age': b'25'}
반응형