Python 모듈 의 Redis 데이터베이스 연결 및 사용 설명

다음은 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 연결 과 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기