NLP |ソートされた辞書をRedisに保存する

| | | | | | |

class RedisOrderedDict(collections.MutableMapping): < / p>

def __ init __( self 、r、name):

self ._ r = r

self ._name = encode_key(name)

def __ iter __( self ):

return iter self 。 items())


def __ len __( self ):

return self ._r.zcard( 自己 ._ name)


def __ getitem __ ( self 、key):

return self ._ r.zscore( self 。_name、encode_key(key))


def __ setitem __( self 、key、score):

self ._r.zadd( self ._ name、encode_key(key)、score)

def __ delitem __( self 、key):

self ._ r.zrem( self ._ name、e ncode_key(key))


def キー( self 、開始 = 0 、end = - 1 ):

#zrevrangeを使用してキーを並べ替えます

<ではなく値で/ p>

最低

return self ._ r.zrevrange( self ._ name、start、end)

def 値( self 、start = 0 、end = - 1 ):

return [v for ( k、v) in self 。アイテム(開始 = 開始、終了 = end)]


def items( self 、start = 0 、end = - 1 ):

return self ._ r.zrevrange( self ._ name、start、end、withscores = True

def get( self 、key、default = 0 ):

return self [key] またはデフォルト


def iteritems( self ):

return iter self


def クリア( self ):

self ._ r.delete( self ._ name)

コード:Redis接続と一意の名前を渡してRedisOrderedDictインスタンスを作成します

from redis import Redis

from rediscollections import RedisOrderedDict


r = Redis()

ロッド = RedisOrderedDict(r、 ` test`

rod.get( ` bar`

rod [ `bar` ] = 5.2

print (rod [ `bar` ])


印刷 len (rod))


print (rod.items())


rod。 clear()

終了:

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

ほとんどのコードは似ているように見えるかもしれませんarはRedisHashMapに対応しています。これは、どちらもコレクションを拡張するために期待されます。主な違いは、 RedisOrderedSet は浮動小数点値でキーを並べ替えるため、 RedisHashMapなどのキー値の任意の格納には適していないことです。
各主要な方法とそれらがRedisでどのように機能するかを説明するスケッチ:

  • __ len __(): zcardコマンドを使用して、注文したセット。
  • __ getitem __():はzscoreコマンドを使用してキーのスコアを取得し、キーが存在しない場合は0を返します。
  • __ setitem __():このコマンドは、zaddコマンドを使用して、指定されたスコアで順序セットにキーを追加するか、キーがすでに存在する場合はスコアを更新します。
  • __ delitem __(): zremコマンドは、順序集合からキーを削除するために使用されます。
  • keys(): zrevrangeコマンドは、順序集合内のすべてのキーを最高スコアでソートするために使用されます。順序付けされたキーのスニペットをより効率的に取得するには、startとendの2つのオプションのキーワード引数が必要です。

Shop

Learn programming in R: courses

$

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

$

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