la ejecución de comandos Redis profundidad

la ejecución de comandos Redis profundidad

servidores Redis: aplicación del lado del servidor Redis conectado a una pluralidad de clientes, y una solicitud de procesamiento enviado por el cliente, el cliente preservando al mismo tiempo los datos generados por la ejecución de comandos a la base de datos. servidor Redis basa Explorer para mantener su operación, su principal función es gestionar el servicio Redis.

Comando del proceso de procesamiento del servidor

Hemos enviado un comando para el cliente final: ciudad SET "Beijing"

El primer paso del SET de la ciudad "Beijing" comando de usuario Introduzca el cliente, el cliente recibe este comando.
primer comando de cliente Paso recibido en el servidor puede identificar el formato de protocolo y, a continuación, utilizar el zócalo para el servidor, el comando para convertir de formato de protocolo de peticiones legítimas al servidor.

expediente

Cuando el servidor recibe el tercer paso de la transmisión de datos de protocolo en un cliente, una conexión de socket entre el cliente y el servidor se convertirá legible, esta vez, el servidor invocar un comando solicitando un procesador para llevar a cabo el procedimiento siguiente.

3.1 Toma de orden de petición de formato de protocolo de servidor de lectura, entonces el comando de solicitud de lectura al estado cliente almacenada en la memoria intermedia de entrada.

3.2 pares de comando buffer de entrada analiza la solicitud, obtenga el número de parámetros y orden de petición de parámetros, se almacenan en el estado del cliente atributos argc y argv.

la ejecución de comandos 3.3 llamada, un comando de ejecución enviada por la petición del cliente.


ejecutor comando primero [0] parámetro de consulta durante la solicitud de la ejecución del comando enviado por el cliente de acuerdo con el estado de cliente en el comando tabla argv (tabla de comandos) especificado en el parámetro de comando, y el encontrado Guardar comando para el atributo cmd estado cliente y determinación relacionada, por ejemplo, está decidido cmd estado cliente puntero apunta a NULL, o comprobar la identidad del cliente, determina si es o no verificado por el estilo, la última llamada a darse cuenta de la ejecución de la función de los comandos relacionados con comando, que es el actuador de la ejecución del comando.


tabla de comandos es un diccionario para almacenar comandos Redis, la clave de diccionario es el nombre de un comando, como "conjunto", "Sadd" "Zadd" y así sucesivamente, y el valor del diccionario es una estructura redisCommand, y cada redisCommand estructura del comando de información de grabación correspondiente implementado. estructura redisCommand que tiene una pluralidad de atributos, como sigue.

● atributo name: indica el nombre del comando, tal como SET, GET, que es de tipo char *.

● propiedades proc: es un puntero de función, la función utilizada para implementar comando punto, por ejemplo, punto de implementar el comando SET función setCommand, que es redisCommandProc tipo, y el tipo de redisCommandProc redisCommandProc vacío definida como typedef (redisClient C).

● propiedades Arity: es un tipo entero int indica el número de parámetros de comando, la solicitud de comando para determinar el formato correcto. Si el valor es un atributo aridad negativo -N , representa el número del argumento comando es mayor que N . Tenga en cuenta que aquí el número de parámetros contiene el propio nombre del comando, por ejemplo, la ciudad SET "Beijing", el número de parámetros de este comando es 3, a saber, el "SET", "ciudad", "Beijing".

● sflags propiedades: es un char * valor de identificación de tipo de cadena, que tiene una pluralidad de identificadores para el comando de grabación tiene la propiedad.

● banderas Propiedades: es un int tipo entero, la identificación binaria de los sflags identificación extraídas del análisis, la identificación binario generado automáticamente por el programa. Cuando aparece la identificación del servidor de comando comprueba utilizando el atributo indicadores.

● Llamadas atribuyen:. Este atributo se utiliza para contar el número de veces que el servidor ejecuta este comando, es un tipo entero largo tiempo.

● milisegundos atribuyen: Este servidor de estadísticas de atributos de realizar la duración total de este comando consume, es un tipo entero largo tiempo.

Cada comando tiene redisCommand Redis estructura correspondiente, tiene los atributos relacionados anteriormente.

sflags atributo tiene el siguiente identificador específico.

● a: valor de atributo de una, esto indica un comando de gestión de comandos Redis. Los comandos asociados son SAVE, BGSAVE, apagado y así sucesivamente.

● l: atributo de valor l, se refiere a un comando utilizado para los datos de carga en el proceso de servidor. Los comandos asociados son INFO, publicar, suscribirse y así sucesivamente.

● m: atributo de valor m, el proceso descrito en el orden de ejecución puede consumir grandes cantidades de memoria. Antes de la aplicación, es necesario determinar el tamaño de la memoria del servidor y el uso, los recursos de memoria del servidor si es insuficiente, se negará a ejecutar el comando. Los comandos asociados son SET, SADD, ADJUNT RPUSH, LPUSH y así sucesivamente.

● M: valor de atributo M, que representa un comando no se propaga automáticamente Redis en el modo de monitor. Los comandos asociados son EXEC.

● p: valor de la propiedad de p, y Redis Descripción Este comando funciones relacionadas con la suscripción comunicado de prensa. Los comandos asociados son PUBLICAR, PubSub, PSUBSCRIBE, PUNSUBSCRIBE, SUSCRIPCIÓN, BAJA así sucesivamente.

● r: r valor de atributo, de sólo lectura, de sólo lectura indica que esta es una orden para adquirir datos relevantes, que no modifica la base de datos. Los comandos asociados son GET, STRLEN, existe y así sucesivamente.

● R: atributo de valor R, que es una descripción del comando al azar, al procesar los mismos conjuntos de datos y los mismos parámetros, el resultado es al azar. Los comandos asociados son SPOP, sscan, RANDOMKEY y así sucesivamente.

● s: valor de atributo de s, que no pueden utilizar la secuencia de comandos en Lua. Los comandos asociados son BLPOP, BRPOP, SPOP, BRPOPLPUSH y así sucesivamente.

● S: S atributo de valor, esto representa una secuencia de comandos utilizado en Lua. Cuando se utiliza este comando en la secuencia de comandos Lua, los productos resultantes serán ordenados, es decir, la salida resultante se le ordena. Los comandos asociados son llaves, SUNION, sdiff, la escoria, SMEMBERS y así sucesivamente.

● t: valor del atributo es t, se refiere a un comando desde el servidor al tiempo que permite el uso con datos obsoletos. Los comandos asociados son PING, INFO, SLAVEOF y así sucesivamente.

● w: w atributo de valor, se puede escribir, un comando de escritura que se describe, se puede modificar la base de datos. Los comandos asociados son SET, DEL, RPUSH y así sucesivamente.


El cuarto comando paso se ejecuta después de la finalización de la ejecución de la función correspondiente, el servidor entonces hacer un trabajo de seguimiento, y luego el comando devuelve los resultados al cliente.

(1) durante la ejecución de la orden puede llevar algún tiempo, la estructura tiene que ser sincronizado a redisCommand comando correspondiente. Modificar el valor de los milisegundos de atributo, mientras que la estructura valor redisCommand llama contador se incrementa.

(2) Si este servidor se ha iniciado la función de registro de consultas lentas, por lo que el módulo de registro de consultas lentas determinará si es necesario agregar un registro de consultas lentas para el comando recién ejecutada terminado.

(3) Si este servidor habilitado la función de persistencia AOF, entonces el módulo de persistencia AOF se completa la ejecución de este comando solicitudes de escritura AOF buffer.

(4) Si hay otros servidores de este servidor es la copia de seguridad de sincronización de datos actual, el comando de este servidor se acaba de ejecutar la solicitud enviada desde el servidor para darle conectado.

Después de la finalización del seguimiento relacionados con el servidor de procesamiento, llamará a la respuesta procesador de comandos, entonces el socket del cliente se convierte en el estado de escritura. procesador de servidor de devolución de resultado de invocará las respuestas de los comandos almacenados en el búfer de salida de formato de protocolo de cliente se envía al cliente

Cuando los resultados procesador devuelve comando correctamente respuesta enviada al cliente, se eliminará el estado cliente de la memoria intermedia de salida, la petición para el siguiente comando para liberar espacio

Paso cinco cliente recibe el resultado del comando devuelve el servidor Aceptar, a continuación, mostrar los resultados al usuario.

Supongo que te gusta

Origin www.cnblogs.com/undefined22/p/12591422.html
Recomendado
Clasificación