NLP | Memorizzare un dizionario ordinato in Redis

| | | | | | |

class RedisOrderedDict (collezioni.MutableMapping):

def code> __ init__ ( self , r, name):

self ._ r = r

self ._name = encode_key (nome)

def __ iter __ ( self ):

return iter ( self . items ())


def __ len __ ( self ):

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


def __ getitem __ ( self , chiave):

return self ._ r.zscore ( self . _name, encode_key (chiave))


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

self ._r.zadd ( self ._ nome, encode_key (chiave), punteggio)

def __ delitem __ ( self , chiave):

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


def chiavi ( self , inizio = 0 , fine = - 1 ):

# usiamo zrevrange per ordinare le chiavi

# per valore invece di

più basso

return self ._ r.zrevrange ( self ._ nome, inizio, fine)

def valori ( self , inizio = 0 , end = - 1 ):

return [v for ( k, v) in self . elementi (inizio = inizio, fine = end)]


def elementi ( self , inizia = 0 , fine = - 1 ):

return self ._ r.zrevrange ( self ._ nome, inizio, fine, con punteggi = True )

def get ( self , chiave, predefinito = 0 ):

return self [chiave] o default


def iteritems ( self ):

return iter ( self )


def clear ( self ):

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

Codice: crea un`istanza RedisOrderedDict passando una connessione Redis e un nome univoco

from redis import Redis

da riscossioni import RedisOrderedDict


r = Redis()

rod = RedisOrderedDict (r, `test` )

rod.get ( ` bar` )

asta [ `bar` ] = 5.2

print (rod [ `bar` ])


print ( len (asta))


print (rod.items ())


asta. clear()

Esci:

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

La maggior parte del codice potrebbe sembrare simile ar su RedisHashMap, il che è prevedibile poiché entrambi estendono le raccolte . La differenza principale è che RedisOrderedSet ordina le chiavi in ​​base a valori in virgola mobile e quindi non è adatto per l`archiviazione arbitraria di valori chiave come RedisHashMap .
Schizzi che spiegano ogni metodo chiave e come funzionano con Redis:

  • __len __ (): il comando zcard viene utilizzato per ottenere il numero di elementi in un insieme ordinato.
  • __getitem __ (): usa il comando zscore per ottenere il punteggio di una chiave e restituisce 0 se la chiave non esiste.
  • __ setitem __ (): questo comando utilizza il comando zadd per aggiungere una chiave all`insieme ordinato con un determinato punteggio, o aggiornare il punteggio se la chiave esiste già.
  • __delitem __ (): Il comando zrem viene utilizzato per rimuovere una chiave dall`insieme ordinato.
  • chiavi (): Il comando zrevrange viene utilizzato per ottenere tutte le chiavi nell`insieme ordinato ordinate in base al punteggio più alto. Per ottenere uno snippet di chiavi ordinate in modo più efficiente sono necessari due argomenti di parole chiave opzionali, inizio e fine.

NLP | Memorizzare un dizionario ordinato in Redis __del__: Questions

NLP | Memorizzare un dizionario ordinato in 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