Redis
 sql >> Database >  >> NoSQL >> Redis

Come eliminare le chiavi che corrispondono a un modello in Redis Cluster

Le risposte a questa domanda tentano di rimuovere più chiavi in ​​un singolo DEL . Tuttavia, le chiavi che corrispondono al modello specificato potrebbero NON trovarsi nello stesso slot e il cluster Redis NON supporta il comando a più chiavi se queste chiavi non appartengono allo stesso slot. Ecco perché viene visualizzato il messaggio di errore.

Per risolvere questo problema, devi DEL queste chiavi una per una:

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

Il -L opzione per xargs comando specifica il numero di chiavi da eliminare. Devi specificare questa opzione come 1 .

Per rimuovere tutte le chiavi corrispondenti al modello, devi anche eseguire il comando precedente per ogni nodo master nel tuo cluster.

NOTA

  1. Con questo comando, devi eliminare queste chiavi una per una e potrebbe essere molto lento. Devi considerare di riprogettare il tuo database e utilizzare hash-tag per fare in modo che le chiavi corrispondenti al modello appartengano allo stesso slot. In modo da poter rimuovere queste chiavi in ​​un unico DEL .

  2. O SCAN o KEYS comando sono inefficienti, in particolare KEYS non dovrebbe essere utilizzato nella produzione. Devi prendere in considerazione la creazione di un indice per queste chiavi.