在将我们的 Web 应用程序的新版本部署到 Azure 应用服务时,我需要清除关联的 Azure Redis 缓存中的数据。这是为了确保我们不会返回在新版本中有架构更改的项目的旧版本。
我们正在使用 Octopus Deploy 进行部署,我之前曾尝试执行以下 PowerShell 命令来重置缓存:
Reset-AzureRmRedisCache -ResourceGroupName "$ResourceGroup" -Name "$PrimaryCacheName" -RebootType "AllNodes" -Force
这很成功,但有点笨手笨脚,我们遇到了间歇性连接问题,我怀疑这是由于我们正在重新启动 Redis 并丢弃现有连接造成的。
理想情况下,我只想通过 PowerShell 执行 FLUSHALL
命令。这是更好的方法吗,是否可以使用 StackExchange.Redis 库在 PowerShell 中执行?
最佳答案
Reset-AzureRmRedisCache cmdlet 重新启动 Azure Redis 缓存实例的节点,我同意这对您的要求来说有点矫枉过正。
Yes, it is possible to execute a Redis FLUSHALL command in PowerShell.
作为先决条件,您应该安装 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 }
关于azure - 在部署期间使用 PowerShell 清除 Azure Redis 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45978130/