스크립트 개발 / 커넥터 객체 DFF.CONN / Redis
Redis 커넥터 작업 객체는 주로 Redis의 작업 메서드를 제공합니다.
DFF.CONN(...)의 매개변수는 다음과 같습니다.
| 매개변수 | 유형 | 필수 / 기본값 | 설명 |
|---|---|---|---|
connector_id |
str | 필수 | 커넥터 ID |
database |
str | None |
커넥터 구성의 데이터베이스 번호를 재정의합니다 |
client_name |
str | None |
이번 연결의 클라이언트 이름을 설정합니다 |
Redis Cluster는 논리 데이터베이스 선택을 지원하지 않으므로 클러스터 연결은 database를 무시합니다.
메시지 구독
커넥터에서 메시지 구독에 관한 내용은 스크립트 개발 / 커넥터 구독을 참조하십시오.
.query(...)
Redis의 execute_command(...)를 직접 호출하여 명령을 실행하며, 매개변수는 다음과 같습니다.
| 매개변수 | 유형 | 필수 / 기본값 | 설명 |
|---|---|---|---|
command |
str | 필수 | Redis 명령 |
*args |
- | - | Redis 명령 매개변수 |
**kwargs |
- | - | redis-py에 전달되는 매개변수 |
| 예제 | |
|---|---|
1 2 3 | |
.query(...)는 redis-py의 반환값을 변환하지 않으며, 문자열 결과는 일반적으로 bytes입니다. 실제 사용 시 데이터 형식에 따라 변환할 수 있습니다.
| Python | |
|---|---|
1 2 3 4 5 6 7 8 9 10 | |
.run(...)
redis-py의 메서드 이름을 사용하여 클라이언트 메서드를 호출하며, 시그니처는 .run(command, *args, **kwargs)입니다. 예를 들어:
| 예제 | |
|---|---|
1 | |
command는 대소문자를 구분하는 redis-py 메서드 이름이며, 일반적으로 소문자를 사용합니다. 반환값은 해당 redis-py 메서드와 동일합니다.
자주 사용하는 편의 메서드
커넥터는 다음과 같은 편의 메서드를 제공합니다. 읽기 계열 메서드는 해당 구현에서 bytes를 재귀적으로 UTF-8 문자열로 디코딩하므로 .query(...)의 원시 반환값과 다를 수 있습니다.
데이터베이스와 키
| 메서드 | 설명 |
|---|---|
.ping() |
연결을 확인합니다 |
.info() |
Redis 정보를 가져옵니다 |
.dbsize() |
현재 데이터베이스의 키 개수를 가져옵니다 |
.type(key) |
키 유형을 가져옵니다; 키가 없으면 None을 반환합니다 |
.memory_usage(key, samples=0) |
키가 차지하는 메모리를 가져옵니다 |
.keys(pattern='*', limit=None) |
SCAN을 사용하여 일치하는 키를 가져오고, 반환 개수를 제한할 수 있습니다 |
.exists(key) |
키 존재 여부를 확인하고 bool을 반환합니다 |
.expire(key, expires) |
초 단위 만료 시간을 설정합니다 |
.expireat(key, timestamp) |
절대 만료 시간을 설정합니다 |
.ttl(key) / .pttl(key) |
초 단위 / 밀리초 단위 남은 시간을 가져옵니다 |
.rename(key, new_key) |
키 이름을 변경합니다 |
.renamenx(key, new_key) |
새 키가 없을 때만 이름을 변경합니다 |
.delete(keys) |
키 또는 키 목록을 삭제하고 삭제된 개수를 반환합니다 |
문자열과 해시
| 메서드 | 설명 |
|---|---|
.set(key, value, expires=None, not_exists=False, exists=False, get_old_value=False) |
값을 설정하고, 만료 시간 및 NX, XX, GET 옵션을 설정할 수 있습니다 |
.mset(key_values) |
딕셔너리의 키-값을 일괄 설정합니다 |
.get(key) |
단일 값을 가져와 디코딩합니다 |
.mget(keys) |
일괄적으로 가져와 {key: value}를 반환합니다 |
.getset(key, value) |
새 값을 설정하고 이전 값을 반환합니다 |
.incr(key) / .incrby(key, step=1) / .incrbyfloat(key, step=1) |
숫자 값을 증가시킵니다 |
.hkeys(key, pattern='*', with_values=False) |
HSCAN을 사용하여 필드를 가져옵니다; 값을 함께 반환할 수 있습니다 |
.hset(key, field=None, value=None, field_values=None) |
하나의 필드 또는 필드 매핑을 설정합니다 |
.hmset(key, field_values) |
필드를 일괄 설정합니다 |
.hsetnx(key, field, value) |
필드가 없을 때만 설정합니다 |
.hget(key, field) / .hgetall(key) |
필드 값을 가져와 디코딩합니다 |
.hmget(key, fields) |
일괄적으로 가져와 {field: value}를 반환합니다 |
.hstrlen(key, field) / .hstrlenall(key) |
하나 또는 모든 필드 값의 바이트 길이를 가져옵니다 |
.hincr(key, field) / .hincrby(key, field, step=1) / .hincrbyfloat(key, field, step=1) |
필드 숫자 값을 증가시킵니다 |
.hdel(key, field) |
하나의 필드 또는 필드 목록을 삭제합니다 |
리스트, 셋 및 정렬된 셋
| 메서드 | 설명 |
|---|---|
.lpush(key, value) / .rpush(key, value) |
왼쪽 / 오른쪽에서 하나의 값 또는 값 목록을 푸시합니다 |
.lpop(key, count=None) / .rpop(key, count=None) |
왼쪽 / 오른쪽에서 하나 이상의 값을 팝합니다 |
.blpop(key, timeout=0) / .brpop(key, timeout=0) |
차단 팝 |
.rpoplpush(key, dest_key=None) |
팝한 후 다른 리스트로 푸시합니다 |
.brpoplpush(key, dest_key=None, timeout=0) |
차단 방식으로 팝한 후 푸시합니다 |
.llen(key) / .lrange(key, start=0, stop=-1) |
리스트 길이 / 범위를 가져옵니다 |
.ltrim(key, start, stop) |
리스트를 자릅니다 |
.push(...) / .pop(...) / .bpop(...) |
.lpush(...) / .rpop(...) / .brpop(...) 의 별칭 |
.sadd(key, member) / .srem(key, member) |
하나의 멤버 또는 멤버 목록을 추가 / 삭제합니다 |
.scard(key) / .smembers(key) / .sismember(key, member) |
셋의 크기, 멤버를 가져오거나 멤버인지 확인합니다 |
.zadd(key, member_scores) / .zrem(key, member) |
정렬된 셋 멤버를 추가 / 삭제합니다 |
.zcard(key) |
정렬된 셋 멤버 수를 가져옵니다 |
.zrange(key, start=0, stop=-1, with_scores=False) |
위치 기준으로 멤버를 가져옵니다 |
.zrangebyscore(key, min_score='-inf', max_score='+inf', with_scores=False) |
점수 기준으로 멤버를 가져옵니다 |
.publish(...)
Redis 채널에 메시지를 게시하고 메시지를 수신한 구독자 수를 반환합니다. .pub(...)는 그 별칭입니다.
| 예제 | |
|---|---|
1 | |
확장 메서드
| 메서드 | 설명 |
|---|---|
.eval(lua_script, key_count, *args) |
Lua 스크립트를 실행하고 반환값을 디코딩합니다 |
.push_limit(key, value, limit) |
왼쪽에서 푸시한 후 리스트를 지정된 길이로 제한합니다 |
.get_pattern(pattern) |
일치하는 키-값을 가져와 {key: value}를 반환합니다 |
.delete_pattern(pattern) |
일치하는 모든 키를 삭제합니다 |
.hget_pattern(key, pattern) |
일치하는 해시 필드와 값을 가져옵니다 |
.lock(lock_key, lock_value, max_lock_time) |
SET EX NX를 사용하여 잠금을 획득합니다 |
.extend_lock_time(lock_key, lock_value, max_lock_time) |
잠금 보유자를 검증한 후 만료 시간을 연장합니다 |
.unlock(lock_key, lock_value) |
잠금 값이 일치할 때만 잠금을 해제합니다 |