Cola de prioridad de implementación de Redis

Redis implementa la función de cola, generalmente usando el comando LPUSH y el comando BRPOP para completarla. Sin embargo, las colas también tienen sus propias prioridades, si hay varias colas pero solo hay un consumidor, ¿cómo lograr la prioridad de consumo?

Sintaxis básica de BRPOP

BLPOP LIST1 LIST2 .. LISTN TIMEOUT 

第一个是键名,第二个是超时时间,单位是秒,如果列表为空或者超过了超时时间还没获取到新元素,就返回一个nil,否则返回一个含有两个元素的列表,第一个元素是被弹出元素所属的key,第二个元素是被弹出元素的值。

超时时间为"0",表示不限制等待的时间。

Se puede encontrar que el primer parámetro admite múltiples, por lo que el comando BLPOP puede recibir múltiples claves al mismo tiempo. Cuando el comando BLPOP monitorea múltiples claves al mismo tiempo, siempre que haya un elemento en una clave, el elemento aparecerá. Si varias claves no tienen elementos, se bloqueará. Por supuesto, si hay elementos en múltiples claves, entonces los elementos en la clave aparecerán en el orden de las claves definidas por el comando BLPOP, que indirectamente se da cuenta de la prioridad de la cola.

Ejemplo de implementación de Redis de operación de cola de prioridad

Primero abra dos instancias de redis-cli, el puerto es 6380, uno como consumidor y otro como productor, de la siguiente manera:

Inserte la descripción de la imagen aquí

Aquí, deje que el productor produzca varios mensajes en las tres colas, y el consumidor no lo abrirá temporalmente, de lo contrario el efecto no será obvio, como sigue:

Pon los siguientes 3 elementos en la cola: 1 clave:
Inserte la descripción de la imagen aquí

Ponga los siguientes 2 elementos en la cola: 2 clave:
Inserte la descripción de la imagen aquí

Coloque el siguiente 1 elemento en la cola: tecla 3:
Inserte la descripción de la imagen aquí

Luego, deje que el consumidor use el comando BRPOP para monitorear las 3 claves anteriores, intente sacar los elementos y vea el orden en el que aparecen los elementos:
Inserte la descripción de la imagen aquí
del resultado de salida, los elementos aparecen en orden y solo los elementos de la primera clave están casi consumidos. Cuando se agote, los elementos en la segunda clave aparecerán, y luego los elementos se buscarán en orden hasta que no haya elementos en el estado de bloqueo.

para resumir

A través del comando BRPOP para monitorear múltiples claves al mismo tiempo, se puede realizar la función de cola de prioridad.

Supongo que te gusta

Origin blog.csdn.net/weixin_38106322/article/details/108525044
Recomendado
Clasificación