NLP | Przechowywanie posortowanego słownika w Redis

| | | | | | |

klasa RedisOrderedDict (collections.MutableMapping):

def __ init__ ( self , r, name):

self ._ r = r

self ._name = encode_key (nazwa)

def __ iter __ ( self ):

return iter ( self . items ())


def __ len __ ( self ):

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


def __ getitem __ ( self , klucz):

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


def __ setitem __ ( self , klucz, wynik):

self ._r.zadd ( self ._ nazwa, encode_key (klucz), wynik

def __ delitem __ ( self , klucz):

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


def klucze ( self , start = 0 , koniec = - 1 ):

# używamy zrevrange do sortowania kluczy

# według wartości zamiast

najniższy

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

def wartości ( self , start = 0 , end = - 1 ):

return [v for ( k, v) in self . items (start = start, end = end)]


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

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

def get ( self , klucz, domyślny = 0 ):

return self [klucz] lub domyślna


def iteritems ( self ):

return iter ( self )


def clear ( self ):

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

Kod: Utwórz instancję RedisOrderedDict, przekazując połączenie Redis i unikalną nazwę

z redis import Redis

z ponowne kolekcje importuj RedisOrderedDict


r = Redis ()

pręt = RedisOrderedDict (r, `test` )

rod.get ( ` bar` )

pręt [ `bar` ] = 5.2

print (rod [ `bar` ])


print ( len (rod))


print (rod.items ())


rod. wyczyść ()

Wyjście:

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

Większość kodu może wyglądać podobnie ar do RedisHashMap, czego można się spodziewać, ponieważ oba rozszerzają kolekcje . Główna różnica polega na tym, że RedisOrderedSet porządkuje klucze według wartości zmiennoprzecinkowych i dlatego nie nadaje się do arbitralnego przechowywania wartości kluczy, takich jak RedisHashMap .
Szkice wyjaśniające każdą kluczową metodę i sposób, w jaki działają z Redis:

  • __len __ (): polecenie zcard służy do pobrania liczby elementów w zamówiony zestaw.
  • __getitem __ (): używa polecenia zscore, aby uzyskać wynik dla klucza i zwraca 0, jeśli klucz nie istnieje.
  • __ setitem __ (): to polecenie używa polecenia zadd, aby dodać klucz do uporządkowanego zestawu z podanym wynikiem lub zaktualizować wynik, jeśli klucz już istnieje.
  • __delitem __ (): Polecenie zrem służy do usunięcia klucza z uporządkowanego zestawu.
  • klucze (): Polecenie zrevrange służy do sortowania wszystkich kluczy w uporządkowanym zestawie według najwyższego wyniku. Aby wydajniej uzyskać fragment uporządkowanych kluczy, potrzebne są dwa opcjonalne argumenty słów kluczowych, start i end.

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