Si sta tentando di scrivere uno script PowerShell che richiama un'applicazione esterna, un client Redis (redis-cli.exe
), quindi invia più comandi a tale file .exe. Non abbiamo alcun problema inviando singoli comandi come di seguito:Invio di comandi multipli a un programma esterno
& redis-cli -h localhost -p 6379 SMEMBERS someKey
Il problema è che questo avrà inizio un client Redis, dare un unico comando, chiudere il client e quindi restituire il controllo PowerShell. Dobbiamo inviare più comandi in una transazione. Ad esempio, qui ci sono i comandi che vogliamo inviare al client:
MULTI
DEL someKey
DEL someSet
EXEC
Il cliente Redis non supporta l'invio di una stringa di script LUA come un comando, ma questo purtroppo non supporta i comandi/exec MULTI transazionali . In altre parole, dobbiamo essere in grado di emettere comandi multipli come quelli elencati sopra.
Non so su PowerShell, ma sulla mia macchina (Linux) Redis-cli prende più comandi sullo standard input: 'eco - e "MULTI \ nEXEC" | redis-cli' mostra 'OK'. –
Nelle pipe PowerShell una serie di stringhe deve fare lo stesso: "MULTI", "DEL someKey", ... | redis-cli ... ', purché anche la versione di Windows sia stata letta da STDIN. –
Incredibile, sembra funzionare! :) Se vuoi postare questa risposta, ascolterò e accetterò. Per esempio. : echo "MULTI", "EXEC" | & redis-cli -h localhost -p 6379 – jakejgordon