azure - 在部署期间使用 PowerShell 清除 Azure Redis 缓存

标签 azure redis azure-powershell stackexchange.redis redis-cli

在将我们的 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 }

上面代码示例的执行结果如下图所示: enter image description here

关于azure - 在部署期间使用 PowerShell 清除 Azure Redis 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45978130/

相关文章:

algorithm - 如何将 1 亿个字符串映射到 10 万个 int?

azure - New-AzKeyVault - 提供的信息未映射到 AD 对象 ID

powershell - 如何使用 PowerShell 将地址空间添加到 Azure Rm 虚拟网络?

azure - 为什么 Azure Functions 不使用应用服务计划中的其他实例来处理数据?

Azure-Functions:您可以使用 web.config 限制(例如 IP 限制或基本身份验证)

c# - 在 Redis C# 中批量创建键 - SocketException : Only one usage of each socket address (protocol/network address/port) is normally permitted

flask - 无法为交换路由消息 'reply.celery.pidbox' : Table empty or key no longer exists

powershell - Azure PowerShell - 提取 Azure SQL 数据库信息

azure - 入站/出站流量记录 Azure VPN 网关

azure - 从 terraform 中的字符串列表中获取子字符串