2017-08-31 10 views
1

Webアプリケーションの新しいバージョンをAzure App Serviceに配備する際、関連するAzure Redis Cacheのデータをクリアする必要があります。これは、新しいバージョンにスキーマ変更された古いバージョンのアイテムを返さないようにするためです。配備中にPowerShellを使用してAzure Redis Cacheをクリアする

私たちは、タコの展開を使用して展開している、と私は以前にキャッシュをリセットするには、次のPowerShellコマンドを実行しようとしている:

Reset-AzureRmRedisCache -ResourceGroupName "$ResourceGroup" -Name "$PrimaryCacheName" -RebootType "AllNodes" -Force 

これが正常に動作しますが、それは少し重い利きだと私たちは断続的に抱えています私がRedisを再起動して既存の接続を切断していることが原因と思われる接続の問題です。

理想的には、FLUSHALLコマンドをPowerShell経由で実行したいと考えています。これはより良いアプローチですか、そしてStackExchange.Redisライブラリを使用してPowerShellで実行することは可能ですか?

答えて

2

Reset-AzureRmRedisCacheコマンドレットは、Azure Redis Cacheインスタンスのノードを再起動します。これは、ご使用の要件に少し不満があることに同意します。

はい、PowerShellでRedis FLUSHALLコマンドを実行することは可能です。前提条件として

、あなたはRedis CLIをインストールし、ご使用の環境でのRedisのCLI実行可能/バイナリのパスを指すように環境変数を設定する必要があります。

次に、次のようにRedis-CLIコマンドを使用してPowerShellで実行できます。以下に示すように上記のコードサンプルの

Invoke-Command -ScriptBlock { redis-cli -h <hostname>.redis.cache.windows.net -p <redisPort> -a <password> } 
Invoke-Command -ScriptBlock { redis-cli flushall } 

実行結果は次のとおりです。 enter image description here

+0

は、私はいくつかのライブラリが同様にインストールしておく必要がありますか? Powershellのコマンドは応答としてOKを返しますが、AzureポータルでRedisコンソールをチェックすると、キャッシュにはまだ値があります。 –

関連する問題