NLP | Redis에 정렬된 사전 저장하기

| | | | | | |

클래스 RedisOrderedDict(collections.MutableMapping):

def <코드 클래스 ="일반 "> __ 초기화__ ( <코드 클래스 = "color1"> 자체 <코드 클래스 = "일반">, r, 이름):

자기 ._ r =

<코드 클래스 = "color1"> 자체 <코드 클래스 = "일반"> ._name <코드 클래스 = "키워드" > = <코드 클래스 = "일반"> encode_key(이름)

<코드 클래스 = "정의되지 않은 공백" >

< 코드 클래스 = "keyword"> def __ iter __ ( 자체 ):

반환 iter ( <코드 클래스 = "color1"> 자체 <코드 클래스 = "일반">. 항목 ())


def __ len __ ( 자체 ):

반환 자체 <코드 클래스 = "일반"> ._r.zcard ( <코드 클래스 = "color1"> 자체 <코드 클래스 = "일반"> ._ 이름)


def __ getitem __ ( 자기 , key):

반환 자기 ._ r.zscore ( 자기 . _이름, 인코딩_키(키))


<코드 클래스 = "키워드"> def __ setitem __ ( 자기 , 키, 점수):

self ._r.zadd( 자기 ._ 이름, encode_key(키), 점수)

def __ delitem __ ( 자기 , 키):

자기 ._ r.zrem ( 자체 ._ 이름, e ncode_key(키))


def 키( 자체 , 시작 = <코드 클래스 = "값"> 0 <코드 클래스 = "일반">, 끝 <코드 클래스 = "키워드" > = <코드 클래스 = "키워드"> - <코드 클래스 = "값"> 1 <코드 클래스 = "일반">):

<코드 클래스 = " 코멘트" > # zrevrange를 사용하여 키를 정렬합니다.

# < 대신 값으로 /p>

가장 낮은

반환 자기 ._ r.zrevrange ( 자기 ._ 이름, 시작, 끝) < /코드>

<코드 클래스 = "정의되지 않은 공백">

<코드 클래스 = "키워드"> def <코드 클래스="일반 "> 값 ​​( 자체 , 시작 = <코드 클래스 = "값"> 0 <코드 클래스 = "일반">, 끝 <코드 클래스 = "키워드"> = <코드 클래스 = "키워드"> - 1 ):

반환 [v for ( k, v) in 자체 . 항목(시작 = 시작, 끝 = end)]


def 항목( <코드 클래스 = "color1"> 자체 <코드 클래스 = "일반">, 시작 <코드 클래스 = "키워드"> = <코드 클래스 = "값"> 0 , end = - 1 ):

반환 자기 ._ r.zrevrange ( 자기 ._ 이름, 시작, 끝, 점수 포함 = True )

def get ( 자체 , 키, 기본값 = 0 ):

return 자기 [키] 또는 기본


<코드 클래스 = "keyword"> def iteritems ( 자체 ):

반환 iter ( 자기 )


def 지우기( 자체 ):

self ._ r.delete ( 자기 ._ 이름)

코드: Redis 연결 및 고유 이름을 전달하여 RedisOrderedDict 인스턴스를 생성합니다.

redis 가져오기 Redis

from rediscollections 가져오기 RedisOrderedDict


<코드 클래스 = "일반"> r <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> Redis ()

<코드 클래스 = "일반"> 막대 <코드 클래스 = "키워드"> = <코드 클래스 = " plain"> RedisOrderedDict (r, `테스트` )

<코드 클래스 ="일반 "> rod.get( <코드 클래스 ="문자열 ">` 막대` )

막대 [ <코드 클래스 = "문자열"> `바` <코드 클래스 = "일반">] <코드 클래스 = "키워드"> = <코드 클래스 = "값"> 5.2

<코드 클래스 = "키워드" > 인쇄 <코드 클래스 = "일반"> (막대 [ <코드 클래스 = "문자열 "> `바` <코드 클래스 ="일반 ">])


인쇄 <코드 클래스 = "plain"> ( len (막대))


인쇄 (rod.items ())


막대. 지우기()

종료:

 0 5.2000000000000002 1 [(b`bar`, 5.2)] 

대부분의 코드는 비슷하게 보일 수 있습니다. ar를 RedisHashMap으로 변환합니다. 이는 둘 다 컬렉션 을 확장하기 때문에 예상되는 것입니다. 주요 차이점은 RedisOrderedSet 는 부동 소수점 값으로 키를 정렬하므로 RedisHashMap 과 같은 키 값의 임의 저장에는 적합하지 않습니다.
각 주요 방법과 Redis에서 작동하는 방법을 설명하는 스케치:

  • __len __ (): zcard 명령은 항목 수를 가져오는 데 사용됩니다. 주문한 세트.
  • __getitem __ (): zscore 명령을 사용하여 키에 대한 점수를 얻고 키가 없으면 0을 반환합니다.
  • __ setitem __ (): 이 명령은 zadd 명령을 사용하여 지정된 점수로 정렬된 집합에 키를 추가하거나 키가 이미 있는 경우 점수를 업데이트합니다.
  • __deitem __ (): zrem 명령은 순서가 지정된 집합에서 키를 제거하는 데 사용됩니다.
  • 키(): zrevrange 명령은 가장 높은 점수를 기준으로 정렬된 집합의 모든 키를 가져오는 데 사용됩니다. 순서가 지정된 키 조각을 더 효율적으로 얻으려면 두 개의 선택적 키워드 인수인 start 및 end가 필요합니다.

NLP | Redis에 정렬된 사전 저장하기 __del__: Questions

NLP | Redis에 정렬된 사전 저장하기 __delete__: Questions

Shop

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Best laptop for Zoom

$499

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method