El uso del análisis de comando de Redis: buscar grandes cantidades de datos

  Redis ha una pregunta clásica, en el caso de la enorme cantidad de datos, hacer cosas como mirada hacia arriba cumplen ciertas normas de información clave, hay dos maneras aquí,

  En primer lugar, las teclas de comando, simple y cruda, ya que el único subproceso Redis esta función, teclas de comando están bloqueando el camino de ejecución, basado en la complejidad de las claves para recorrer el camino de lograr es O (n), más llave de la biblioteca Redis, Encuentra costo mayor se dan cuenta de producir un mayor tiempo de bloqueo.

  comando de segunda exploración para encontrar la manera de lograr sin bloqueo valor clave, en la mayoría de los casos pueden reemplazar las teclas de comando, más fuerte opcional

  El siguiente escrito 100.000 clave ***: *** valor de formato de datos de prueba (ps: si un pipline, suma 1w, cada suma en la segunda etapa se completa)

  # - * - coding: UTF-8 - * -

  #! / Usr / bin / env python3

  Redis importación

  import sys

  fecha y hora de importación

  def create_testdata ():

  r = redis.StrictRedis (host = '***. ***. ***. ***', port = ***, db = 0, contraseña = '***')

  contador = 0

  con r.pipeline (transacción = FALSE) como p:

  para i en el rango (0, 100 000):

  P.SET ( 'clave' + str (i), "valor" + str (i))

  contador = contador + 1

  si (contador == 10000):

  p.execute ()

  contador = 0

  imprimir ( "establecido por bucle pipline")

  Si __name__ == "__main__":

  create_testdata ()

  Por ejemplo, la consulta a partir key111 clave de qué aquí?

  Si utiliza las teclas de comando, realice las teclas * key1111, echa un vistazo a todos a la vez.

  Del mismo modo, si un comando de exploración, a continuación, utilizar la exploración key1111 0 * Cuento partido 20

  sintaxis de exploración es:

  cursor SCAN [Perfil de Compatibilidad] [COUNT recuento] el valor de recuento por defecto es 10.

  comando de exploración es una iteradores basados ​​en el cursor. Esto significa que el comando se invoca cada vez que una necesidad de utilizar esto como una llamada para devolver los parámetros de cursor cursor de la invocación, a fin de continuar el proceso iterativo antes.

  Aquí el uso de exploración 0 partido key1111 * recuento de 20 comandos para completar esta investigación, algo sorprendente, no se inició mediante una consulta a los resultados, el comando de escaneo desde el punto de vista de principio.

  escanear cuando la llave atraviesa, 0 representa la primera vez, key1111 * según el modelo representa el comienzo de key1111 partido, cuentan 20 no es representativa de la salida de la llave cualificado 20, pero limitado el número de ranuras diccionario de una sola pasada a través del servidor (aproximadamente igual).

  Por lo tanto, lo que también se denomina ranura de datos? Esta ranura no es ranura cúmulo Redis? La respuesta es no. De hecho, la cifra se ha dado la respuesta.

  Si dice que el número de "diccionario ranura" es una ranura de clúster, y saber el número de clúster de ranura es 16384 (RedisCluster diseño 16384 ranura), a continuación, después de recorrer 16.384 ranuras, debe ser capaz de atravesar de toda la información clave,

  Sobre vea claramente que cuando el número de 20.000 atravesada ranura diccionario cuando el cursor todavía no ha finalizado a través de los resultados, por lo que el diccionario no significa que el concepto de ranura de ranura en el clúster.

  Después de probar, el tiempo de exploración, la forma de recorrer mucho valor COUNT para que coincida con llave completamente cualificado, con el número de clave de objetos específicos relacionados

  Si el recuento es superior a la tecla numérica para escanear, seguro que encuentra el de una sola vez toda la llave calificado, como en el caso de un número clave de 10W, una vez atravesado ranuras 20w diccionarios, sin duda por completo atraviesan los resultados salen.

  instrucción de escaneo es una serie de instrucciones, además de recorrer toda la llave, pero también se puede configurar para atravesar el contenedor especificado.

  ZScan zConfigurar traverse la colección de elementos,

  hscan recorrer los elementos del diccionario de hachís,

  sscan atravesar los elementos de conjunto de recopilación.

  sscan de comandos, comandos y el comando HSCAN ZScan primer parámetro es siempre una base de datos de letras (una clave especificada).

  Además, al utilizar Redis gestor de escritorio, al actualizar una biblioteca, y actualizar constantemente la consola automáticamente comando de exploración, se sabrá por qué el

  Cuenta con comando de exploración:  Zhengzhou hospital de buena ginecológica http://www.kd0371.com/

  1, aunque la complejidad es O (n), pero es un paso a paso a través del cursor, no se bloquearán el hilo;

  2, para proporcionar controles de parámetros de límite de la cantidad máxima de resultados devueltos cada vez, solamente un límite de pista, los resultados devueltos pueden ser más o menos;

  3, como llaves, sino que también proporciona una coincidencia de patrones;

  4, el cursor de servidor no tiene que guardar el estado, el único estado del cursor es escanear la parte posterior del cursor al cliente un número entero;

  5, los resultados devueltos pueden superponerse, las necesidades de los clientes a repetición, esto es muy importante;

  6, si durante la modificación de datos de recorrido, los datos no pueden atravesar al cambio es incierta;

  7, un solo resultado devuelto es vacía, no significa el final de la poligonal, pero depende del valor devuelto cursor es cero

Supongo que te gusta

Origin www.cnblogs.com/gnz49/p/12620380.html
Recomendado
Clasificación