Python Redis 에 접근 하 는 자세 한 동작

7241 단어 PythonRedis
1.연결
연결 성공 여부 테스트:

import redis
r = redis.Redis(host='192.168.136.102', port=6379, db=0,decode_responses=True)
r.set('foo', 'bar')
print(r.get('foo'))
del r
redis 에서 꺼 낸 결 과 는 기본적으로 바이트 입 니 다.decode 를 설정 할 수 있 습 니 다.responses=True 를 문자열 로 변경 합 니 다.
redis 는 두 가지 종류의 Redis 와 StrictRedis 를 제공 합 니 다.StrictRedis 는 대부분의 공식 명령 을 실현 하 는 데 사 용 됩 니 다.Redis 는 StrictRedis 의 하위 클래스 로 이전 버 전 을 뒤로 겸용 합 니 다.

import redis   #   redis   
r = redis.Redis(host='192.168.136.102', port=6379, decode_responses=True)
r.set('name', 'runoob')  #    name     
print(r['name'])
print(r.get('name'))  #     name     
print(type(r.get('name')))  #     
del r
연결 탱크
redis-py 는 connection pool 을 사용 하여 하나의 redis server 에 대한 모든 연결 을 관리 하고 매번 연결 을 만 들 거나 방출 하 는 비용 을 피한다.
기본적으로 모든 Redis 인 스 턴 스 는 자신의 연결 풀 을 유지 합 니 다.연결 풀 을 직접 만 든 다음 에 매개 변수 Redis 로 여러 개의 Redis 인 스 턴 스 가 하나의 연결 풀 을 공유 할 수 있 습 니 다.

import redis    #   redis   
pool = redis.ConnectionPool(host='192.168.136.102', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.set('name', 'runoob')  #    name     
print(r.get('name'))  #     name     
대비
在这里插入图片描述
2.String 문자열
String 사용 필드:
1.redis 를 캐 시 층 으로 하여 읽 기와 쓰기 성능 을 가속 화하 여 백 엔 드 의 압력 을 낮 춥 니 다.
2.카운터
3.시간 내 요청 횟수 제한
1.String set 단일 키 설정
set(name, value, ex=None, px=None, nx=False, xx=False)
ex:만 료 시간(초),시간 이 되면 redis 가 자동 으로 삭 제 됩 니 다.
px:만 료 시간(밀리초),시간 이 되면 redis 가 자동 으로 삭 제 됩 니 다.ex,px 둘 중 하 나 를 선택 하면 됩 니 다.
nx:true 로 설정 하면 name 이 존재 하지 않 을 때 만 현재 set 작업 이 실 행 됩 니 다.
xx:True 로 설정 하면 name 이 존재 할 때 만 현재 set 작업 이 실 행 됩 니 다.

r.set('name', 'zhangsan',ex=3)  
r.set('name', 'lisi',nx=True)  #     True,   name    ,  set     
r.set('name', 'wangwu',xx=True)  #     True,   name   ,  set     
2.String get 단일 값 가 져 오기

v = r.get('name')
print(v)
3.String mset 여러 키 설정
mset(*args, **kwargs)

name_dict = {
    'name_1' : 'zhangsan',
    'name_2' : 'lisi'
}
r.mset(name_dict)
4.String mget 여러 값 가 져 오기

mget(keys, *args)
r.mget('name_1', 'name_2')
5.String setrange 는 색인 에 따라 키 의 value 값 을 수정 합 니 다.
setrange(name, offset, value)
반환 값:수 정 된 문자열 길이
name:키,존재 하지 않 을 때 자동 으로 추가
offset:오프셋,0 으로 시작
value:수 정 된 문자 나 문자열,문자열 은 offset 으로 뒤로 연 결 됩 니 다.

length = r.setrange('name_2', 1, 'zhihu')
print(length)
6.String getrange 는 색인 에 따라 키 의 일부 value 값 을 가 져 옵 니 다.
주어진 키 가 존재 하지 않 을 때 빈 값 b'를 되 돌려 줍 니 다.
getrange(key, start, end)

v = r.getrange('name_1', 0, 2)
7.String strlen 이 value 를 가 져 오 는 길이
strlen(name)
주어진 키 가 존재 하지 않 을 때 반환 값 은 0 입 니 다.

length = r.strlen('name_2')
8.String append value 뒤에 추가
append(key, value)
주어진 키 가 존재 하지 않 으 면 새 값 을 설정 하고 수 정 된 문자열 의 길 이 를 되 돌려 줍 니 다.

length = r.append('name_1', '666')
3.리스트
1.lpush(key,value)는 목록 key 의 헤더 에 하나 이상 의 값 value 를 삽입 합 니 다.

 r.lpush('list', 'a', 'b', 'c', 'd')
2.rpush(key,value)는 목록 key 의 표 끝 에 하나 이상 의 값 value 를 삽입 합 니 다.

r.rpush('rlist', 'a', 'b', 'c', 'd')
3.llen key 목록 key 의 길 이 를 되 돌려 줍 니 다.

 r.llen('list')
4.lrem key count value 는 매개 변수 count 의 값 에 따라 목록 에서 매개 변수 value 와 같은 요 소 를 제거 합 니 다.

r.lrem('list',2, 'b')
4.집합
1.sadd(name,values)가 대응 하 는 집합 에 요 소 를 추가 합 니 다.

r.sadd("set1", 33, 44, 55, 66) 
2.scard(name)
name 에 대응 하 는 집합 요소 갯 수 가 져 오기

r.scard('set1')
3.srandmember key[count]집합 중의 1 또는 count 개 무 작위 요 소 를 되 돌려 줍 니 다.

r.srandmember("set1") 
4.spop key 를 제거 하고 집합 에 있 는 무 작위 요 소 를 되 돌려 name 에 대응 하 는 집합 에 있 는 요소 개 수 를 가 져 옵 니 다.

r.spop('set1')
5.smove source destination member 는 member 요 소 를 source 집합 에서 destination 집합 으로 이동 합 니 다.

  r.smove('set1', 'set2', 66)
5.해시
1.hmset key field value[field value...]여러 field-value(도 메 인-값)를 해시 표 key 에 설정 합 니 다.

r.hmset('zhangsan',{'name':'zhangsan','age':20,'tel':123456})
2.Hash hmget 해시 의 여러 키 쌍 가 져 오기

hmget(name, keys, *args)
반환 값:값 의 목록 list 형 예:['1','123']

r.hmget('zhangsan', ['sex', 'tel'])
3.Hash hget 지정 한 key 값 가 져 오기
hget(name, key)

r.hget('zhangsan', 'tel')
4.Hash hgetall 해시 의 모든 키 쌍 가 져 오기
hgetall(name)
반환 값:dict 형식

r.hgetall('zhangsan')
6.질서 있 는 집합
1.Zset zadd 질서 있 는 집합 에 요소 추가
zadd(name, *args, **kwargs)
원 소 를 추가 할 때 원소 의 점 수 를 지정 해 야 합 니 다.
반환 값:추 가 된 개 수 를 되 돌려 줍 니 다.

r.zadd('myzset', {'a': 3, 'b': 4,'c':5})
r.zadd('myzset', 'a', 3, 'b', 4,'c',5})  #    
2.Zset zcard 는 질서 있 는 집합 중의 요소 개 수 를 되 돌려 줍 니 다.
zcard(name)

v = r.zcard('myzset')
3.Zset zscore 는 질서 있 는 집합 에서 지정 한 값 의 점 수 를 되 돌려 줍 니 다.
zscore(name, value)
반환 값:float 형식의 점수;-5.0

v = r.zscore('myzset', ‘a')
4.Zset zincrby 질서 있 는 집합 에서 어떤 값 의 점 수 를 증가 합 니 다.
zincrby(name, value, amount=1)
value:존재 하면 amount 점 수 를 증가 합 니 다.존재 하지 않 으 면 새 값 과 대응 하 는 점 수 를 증가 합 니 다.
amount:증가 하 는 값 은 마이너스 일 수 있 습 니 다.
반환 값:증가 한 점수 float 형식;

v = r.zincrby('myzset',1,'a')
5.Zset zrevrange 는 질서 있 는 집합 점수 정렬 의 데 이 터 를 되 돌려 줍 니 다.
zrevrange(name, start, end, withscores=False, score_cast_func=float)
name:redis 의 name
start:질서 있 는 집합 색인 시작 위치(비점 수)
end:질서 있 는 집합 색인 끝 위치(비점 수)
withscores:요소 의 점 수 를 가 져 올 지 여부 입 니 다.기본적으로 요소 의 값 만 가 져 옵 니 다.
score_cast_func:점수 변환 함수
반환 값:list 형식

r.zadd('myzset1', {'a': 4, 'b': 2,'c':3,'d':6,'e':1,'f':9})
def double(num):
    return float(num)*float(num)
print(r.zrevrange('myzset1',0,3,withscores=True))
print(r.zrevrange('myzset1',0,3,withscores=True,score_cast_func=double))
이상 은 Python 이 Redis 를 방문 하 는 상세 한 내용 입 니 다.Python 이 Redis 를 방문 하 는 것 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기