NLP | Een gesorteerd woordenboek opslaan in Redis

| | | | | | |

class RedisOrderedDict (collections.MutableMapping):

def __ init__ ( zelf , r, naam):

zelf ._ r = r

zelf ._name = encode_key (naam)

def __ iter __ ( zelf ):

return iter ( zelf . items ())


def __ len __ ( zelf ):

return zelf ._r.zcard ( zelf ._ naam)


def __ getitem __ ( zelf , sleutel):

return zelf ._ r.zscore ( zelf . _name, encode_key (key))


def __ setitem __ ( zelf , sleutel, score):

zelf ._r.zadd ( zelf ._ naam, encode_key (sleutel), score)

def __ delitem __ ( zelf , key):

zelf ._ r.zrem ( zelf ._ naam, e ncode_key (key))


def sleutels ( zelf , start = 0 , end = - 1 ):

# we gebruiken zrevrange om sleutels te sorteren

# op waarde in plaats van

laagste

return zelf ._ r.zrevrange ( zelf ._ naam, begin, einde)

def waarden ​​( zelf , start = 0 , end = - 1 ):

return [v voor ( k, v) in zelf . items (start = begin, einde = end)]


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

return zelf ._ r.zrevrange ( zelf ._ naam, begin, einde, withscores = True )

def get ( zelf , sleutel, standaard = 0 ):

return zelf [key] of standaard


def iteritems ( zelf ):

return iter ( zelf )


def wissen ( zelf ):

zelf ._ r.delete ( zelf ._ naam)

Code: maak een RedisOrderedDict-instantie door een Redis-verbinding en een unieke naam door te geven

van redis import Redis

van rediscollections import RedisOrderedDict


r = Redis ()

staaf = RedisOrderedDict (r, `test` )

rod.get ( ` bar` )

staaf [ `bar` ] = 5.2

print (rod [ `bar` ])


print ( len (staaf))


print (rod.items ())


rod. wissen ()

Afsluiten:

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

De meeste code ziet er misschien ar naar RedisHashMap, wat te verwachten is omdat ze allebei verzamelingen uitbreiden. Het belangrijkste verschil is dat RedisOrderedSet sleutels ordent met drijvende-kommawaarden, en daarom niet geschikt is voor willekeurige opslag van sleutelwaarden zoals RedisHashMap .
Schetsen die elke sleutelmethode uitleggen en hoe ze werken met Redis:

  • __len __ (): het zcard-commando wordt gebruikt om het aantal items in een besteld setje.
  • __getitem __ (): gebruikt het zscore-commando om de score voor een sleutel te krijgen en retourneert 0 als de sleutel niet bestaat.
  • __ setitem __ (): dit commando gebruikt het zadd-commando om een ​​sleutel toe te voegen aan de geordende set met een gegeven score, of de score bij te werken als de sleutel al bestaat.
  • __delitem __ (): Het zrem-commando wordt gebruikt om een ​​sleutel uit de geordende set te verwijderen.
  • keys (): Het zrevrange-commando wordt gebruikt om alle sleutels in de geordende set gesorteerd op de hoogste score te krijgen. Om een ​​fragment van geordende sleutels efficiënter te krijgen, zijn twee optionele trefwoordargumenten nodig, begin en einde.

NLP | Een gesorteerd woordenboek opslaan in Redis __del__: Questions

NLP | Een gesorteerd woordenboek opslaan 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