Python 모듈 의 Redis 데이터베이스 연결 및 사용 설명
1.Python Redis 데이터베이스 연결 방법:
import redis
res = redis.Redis(
host="127.0.0.1",
port=6379,
db=0,
password="XXXXXX",
decode_responses=True
)
res.set("name","Li")
print(res.get("name"))
redis.Redis()매개 변수 설명:1.host:연 결 된 호스트 의 아이 폰 주 소 를 표시 합 니 다.
2.port:연 결 된 포트 를 표시 합 니 다.
3.db:사용 하 는 데이터베이스 의 레이 블 을 표시 합 니 다.
4.password:연 결 된 데이터베이스 의 암 호 를 표시 합 니 다.이 인 자 를 추가 하지 않 으 면 됩 니 다.
5.decode_responses:redis 데이터베이스 에서 추출 한 데 이 터 는 기본적으로 바이트 형식 이 고 이 매개 변 수 를 더 하면 추출 한 데 이 터 는 기본적으로 문자열 형식 입 니 다.
2.Python 은 연결 탱크 를 사용 하여 Redis 데이터 베 이 스 를 연결 합 니 다.
import redis
connection = redis.ConnectionPool(
host="127.0.0.1",
port=6379,
password="XXXXXX",
decode_responses=True
)
res = redis.StrictRedis(connection_pool=connection)
res.set("name","666")
print(res.get("name"))
여기 서 연결 탱크 의 역할 을 사용 하면 중간 에 소모 되 는 시간 을 줄 일 수 있 습 니 다.우리 가 이 연결 을 다 사용 한 후에 그 를 다시 연결 탱크 에 넣 으 면 다른 인 스 턴 스 는 데이터 베 이 스 를 다시 연결 하지 않 고 직접 사용 할 수 있 습 니 다.그러면 중간 에 소모 되 는 시간 을 대폭 줄 일 수 있 습 니 다.연결 이 성공 하면 다음은 Python 을 사용 하여 redis 데이터베이스 에 대한 작업 입 니 다.
문자열(String)내부 동작:
1.res.set()함수:
res.set("name","666",ex=m,px=n,nx=True,xx=True)
여기 서 네 개의 매개 변수 중 ex 와 px 는 공존 할 수 없고 nx 와 xx 도 공존 할 수 없습니다.ex,px 는 데이터 만 료 시간 을 표시 하고 ex 는 초 단위 이 며 px 는 밀리초 단위 입 니 다.데이터 가 만 료 되 었 을 때 키 가 여전히 존재 하고 값 은 None 으로 변 합 니 다.
nx 와 xx 는 데이터 베 이 스 를 삽입 하 는 키 의 상 태 를 표시 합 니 다.nx(새로 만 들 기)는 True 로 키 가 존재 하지 않 을 때 set 작업 의 반환 값 은 True 이 고 새 데 이 터 를 표시 합 니 다.한편,xx(수정)는 True 로 키 가 존재 할 때 set 작업 반환 값 을 True 로 표시 하고 데 이 터 를 수정 합 니 다.그렇지 않 으 면 위 작업 은 None 로 돌아 갑 니 다.
**그러므로 상기 조작 에서 파생 된 새로운 함수:res.setex("키",만 료 시간(초),"값")**
res.setnx("키","값")키 가 존재 하지 않 습 니 다.True 로 돌아 가 새로 만 듭 니 다.
res.psetex("키",만 료 시간(밀리초),"값")
res.mset({"키":"값",...})키-값 데 이 터 를 대량으로 추가 합 니 다.
res.mset("키","키",...)키 데 이 터 를 대량으로 증가 합 니 다.
res.getset("키","값")을 새 값 으로 수정 하고 원래 값 으로 되 돌려 줍 니 다.
2.res.strlen("키")반환 키 에 대응 하 는 값 의 바이트 길이 입 니 다.
3.res.incr("키",amount=증가 하 는 보폭)가 존재 하지 않 으 면 생 성 됩 니 다.그렇지 않 으 면 증가 합 니 다.
res.decr("키",amount=자동 감소 의 길이)가 존재 하지 않 으 면 생 성 됩 니 다.그렇지 않 으 면 자동 감소 합 니 다.
res.incrbyfloat("키",amount=자체 증가 하 는 보폭(부동 소수점 형))
4.res.append("키","값")는 키 에 대응 하 는 값 의 원본 문자열 뒤에 값 을 추가 합 니 다.
해시 표(Hash)내부 작업:
1.단일 추가:res.hset("Hash 표 이름","키","값")
2.대량 증가:res.hmset("Hash 표 이름",{"키 쌍"...})
3.단일 꺼 내기:res.hget("Hash 표 이름","키")
4.여러 개 꺼 내기:res.hmget("Hash 표 이름","키","키",...)
5.새로 만 드 는 방법:res.hsetnx("Hash 표 이름","키","값")가 없 을 때 만 새로 만 드 는 역할 을 합 니 다.
6.hash 의 모든 키 값 을 꺼 냅 니 다:res.hgetall("Hash 표 이름")
7.hash 의 hash 길이(즉 hash 의 키 쌍 개수):res.hlen("Hash 표 이름")
8.hash 의 모든 키 가 져 오기:res.hkeys("Hash 표 이름")
hash 의 모든 값 가 져 오기:res.hvals("Hash 표 이름")
9.hash 에 이 구성원 이 존재 하 는 지 판단:res.hexists("Hash 표 이름","키")
10.hash 의 키 쌍 삭제:hdel("Hash 표 이름","키")
목록(List)내부 작업:
1.목록 추가 작업:왼쪽 에서 오른쪽으로 추가:res.lpush("List 표 이름","값",...)
오른쪽 에서 왼쪽으로 추가:res.rpush("List 목록","값",...)
이 두 가지 방식 은 이 목록 이 없 으 면 만 듭 니 다.res.l/rpashx()를 만 들 지 않 고 삽입 하지 않 으 면 만 듭 니 다.
2.고정된 색인 번호 위치 에 요소 삽입:res.linsert("표 이름","위치","삽입 할 요 소 를'이 요소'이전의 색인 위치(m)에 삽입 합 니 다","삽 입 된 요소(n)")
예 를 들 어 res.linsert("list 2","before","11","00")는 목록 왼쪽 에 첫 번 째 로 나타 난"m"요소 앞 에 요소"n"을 삽입 합 니 다.
3.수정(색인 번 호 를 지정 하여 수정):res.lset("표 이름",index,"값")
4.지정 한 색인 값 삭제:res.lrem("표 이름","값",벡터 삭제 수(왼쪽 마이너스 오른쪽 0 전부)
5.res.l/rpop("표 이름")은 표 의 왼쪽/오른쪽 에 있 는 첫 번 째 데 이 터 를 제거 하고 값 을 되 돌려 줍 니 다.
6.수치:res.lindex("표 이름",index)
집합(Set)내부 작업:
1.데이터 추가:res.sadd("집합 명","값")
2.집합 한 모든 구성원 가 져 오기:res.smembers("집합 명")
3.집합 내 데이터 수량 가 져 오기:res.scard("집합 명")
4.모음 형식 으로 집합 한 모든 구성원 가 져 오기:res.sscan("집합 명")
5.집합 여 부 를 판단 하 는 구성원:res.sismember("집합 명","값")
6.지정 한 값 삭제:res.srem("집합 명","값")
집합,목록,문자열,해시 작업:
1.삭제:res.delete("키")는 이 키 의 데 이 터 를 삭제 하고 표 형식의 제약 을 받 지 않 습 니 다.
2.이름 이 있 는 지 확인 하기:exists("표 이름")
3.모호 일치:
KEYS * key 。
KEYS h?llo hello , hallo hxllo 。
KEYS hllo hllo heeeeello 。
KEYS h[ae]llo hello hallo , hillo
, Python :
res.keys() key 。
res.keys("h?llo") hello , hallo hxllo 。
res.keys("hllo") hllo heeeeello 。
res.keys("h[ae]llo") hello hallo , hillo
4.테이블 이름 바 꾸 기:res.rename("원래 이름","새 이름")5.표 의 종류 가 져 오기:res.type("표 이름")
6.모든 요소 보기:res.scan("표 이름")
7.모든 요 소 를 보고 교체 기 생 성:res.scaniter("시계 이름")
8.획득 값:res.get("키")
9.현재 데이터베이스 에 몇 개의 데이터 가 포함 되 어 있 는 지 보기:res.dbsize()
10.데 이 터 를 디스크 에 다시 쓰 고 저장 할 때 차단:res.save()
11.데이터베이스 의 모든 데이터 비우 기:res.flushdb()
파이프(pipeline):
redis 기본 값 은 요청 할 때마다 생 성(연결 풀 연결 신청)과 연결 끊 기(연결 풀 반환)를 한 번 에 실행 합 니 다.한 번 요청 에서 여러 명령 을 지정 하려 면 pipline 을 사용 하여 한 번 에 여러 명령 을 지정 하고 기본 값 으로 다음 pipline 은 원자 작업 입 니 다.
파이프(pipeline)는 redis 가 하나의 요청 에서 여러 서버 명령 을 버퍼 하 는 기본 클래스 의 하위 클래스 입 니 다.이 는 서버-클 라 이언 트 간 에 반복 되 는 TCP 데이터베이스 패 키 지 를 줄 여 대량 명령 을 수행 하 는 기능 을 크게 향상 시 켰 다.
파이프 조작:
pipe = res.pipeline() #
pipe.set('name', 123)
pipe.set('role', 456)
pipe.incr('num') # num vaule 1, , value 1。
pipe.execute() # , MySQL 。
상기 코드 는 다음 과 같이 간소화 할 수 있 습 니 다.
pipe = res.pipeline() #
pipe.set('name', 123).set('role', 456).incr('num').execute()
Python 모듈 이 Redis 데이터베이스 에 대한 연결 과 사용 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 Python Redis 연결 과 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.