sql >> Base de Datos >  >> NoSQL >> Redis

Cómo eliminar claves que coincidan con un patrón en Redis Cluster

Las respuestas para esa pregunta intentan eliminar varias claves en un solo DEL . Sin embargo, es posible que las claves que coincidan con el patrón dado NO se ubiquen en la misma ranura, y Redis Cluster NO admite el comando de varias teclas si estas claves no pertenecen a la misma ranura. Por eso recibes el mensaje de error.

Para solucionar este problema, debe DEL estas claves una por una:

redis-cli --scan --pattern "foo*" |xargs -L 1 redis-cli del

El -L opción para xargs El comando especifica el número de claves a eliminar. Debe especificar esta opción como 1 .

Para eliminar todas las claves que coincidan con el patrón, también debe ejecutar el comando anterior para cada nodo maestro en su clúster.

NOTA

  1. Con este comando, debe eliminar estas claves una por una, y eso puede ser muy lento. Debe considerar rediseñar su base de datos y usar etiquetas hash para hacer que las llaves que coincidan con el patrón pertenezcan a la misma ranura. Para que pueda eliminar estas claves en un solo DEL .

  2. O SCAN o KEYS comando son ineficientes, especialmente, KEYS no debe ser utilizado en la producción. Debe considerar crear un índice para estas claves.