Próbujemy napisać skrypt PowerShell, który wywołuje zewnętrzną aplikację - klienta Redis (redis-cli.exe
) - a następnie wysyła wiele poleceń do tego pliku .exe. Nie mamy problem wysyłanie indywidualnych poleceń jak poniżej:Wysyłanie wielu poleceń do zewnętrznego programu
& redis-cli -h localhost -p 6379 SMEMBERS someKey
Problemem jest to, że klient zacznie Redis, wydać jedno polecenie, zamknij klienta, a następnie powrócić do kontroli PowerShell. Musimy wydać wiele poleceń w transakcji. Na przykład, tutaj są polecenia, które chcemy wysłać do klienta:
MULTI
DEL someKey
DEL someSet
EXEC
Klient Redis obsługuje wysyłanie ciąg skryptu LUA jako polecenia, ale ten niestety nie obsługuje komendy/EXEC transakcyjnych MULTI . Innymi słowy, musimy mieć możliwość wydawania wielu poleceń, takich jak wymienione powyżej.
nie wiem o PowerShell, ale na moim (Linux) box Redis-CLI wykonuje wiele poleceń na standardowym wejściu: 'echo - e "MULTI \ nEXEC" | redis-cli' pokazuje "OK". –
W potokach PowerShell tablica łańcuchów powinna robić to samo: '' MULTI ',' DEL someKey ', ... | redis-cli ... ', pod warunkiem, że wersja Windows jest również odczytywana ze STDIN. –
Awesome, wydaje się działać! :) Jeśli chcesz to opublikować jako odpowiedź, zrobię i zaakceptuję. Na przykład. : echo "MULTI", "EXEC" | & redis-cli -h localhost -p 6379 – jakejgordon