NLP | Almacenamiento de un diccionario ordenado en Redis

| | | | | | |

class RedisOrderedDict (colecciones.MutableMapping):

def __ init__ ( self , r, nombre):

self ._ r = r

self ._name = encode_key (nombre)

< clase de código = "palabra clave"> def __ iter __ ( self ):

return iter ( self . items ())


def __ len __ ( self ):

return self ._r.zcard ( self ._ nombre) < /código>


def __ getitem __ ( self , key):

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


def __ setitem __ ( self , clave, partitura):

self ._r.zadd ( self ._ nombre, encode_key (clave), puntuación)

def __ delitem __ ( self , clave):

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


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

# usamos zrevrange para ordenar claves

# por valor en lugar de

más bajo

return self ._ r.zrevrange ( self ._ nombre, inicio, fin)

def valores ( self , start = 0 , end = - < /código> 1 ):

volver [v for ( k, v) en self . elementos (inicio = inicio, fin = end)]


def elementos ( self , inicio = 0 , end = - 1 ):

volver self ._ r.zrevrange ( self ._ nombre, inicio, final, con puntajes = True )

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

return self [clave] o predeterminado


def iteritems ( self ):

return iter ( self )


def claro ( self ):

self ._ r.delete ( self ._ nombre)

Código: cree una instancia de RedisOrderedDict pasando una conexión Redis y un nombre único

de redis importar Redis

de redescubrimientos importar RedisOrderedDict


r = Redis ()

rod = RedisOrderedDict (r, `test` )

rod.get ( ` bar` )

rod [ `bar` ] = 5.2

imprimir (varilla [ `bar` ])


print ( len (varilla))


print (rod.items())


rod. borrar ()

Salir:

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

La mayor parte del código puede parecer similar ar a RedisHashMap, lo cual es de esperar ya que ambos extienden colecciones. La principal diferencia es que RedisOrderedSet ordena las claves por valores de punto flotante y, por lo tanto, no es adecuado para el almacenamiento arbitrario de valores clave como RedisHashMap.
Bocetos que explican cada método clave y cómo funcionan con Redis:

  • __len __ (): el comando zcard se usa para obtener la cantidad de elementos en un conjunto ordenado.
  • __getitem __ (): utiliza el comando zscore para obtener la puntuación de una clave y devuelve 0 si la clave no existe.
  • __ setitem __ (): este comando usa el comando zadd para agregar una clave al conjunto ordenado con una puntuación dada, o actualizar la puntuación si la clave ya existe.
  • __delitem __ (): El comando zrem se usa para eliminar una clave del conjunto ordenado.
  • claves (): El comando zrevrange se utiliza para obtener todas las claves del conjunto ordenado ordenadas por la puntuación más alta. Para obtener un fragmento de claves ordenadas de manera más eficiente, se requieren dos argumentos de palabras clave opcionales, inicio y fin.

NLP | Almacenamiento de un diccionario ordenado en Redis __del__: Questions

NLP | Almacenamiento de un diccionario ordenado en 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