Table of Contents

如何使用 Redis-Cli 连接到 Azure Redis 缓存

问题描述

使用 redis-cli 无法连接到 Azure Redis 缓存。

问题分析

Azure Redis 缓存可以通过 SSL 端口和非 SSL 端口创建连接。当使用 redis-cli 连接 Azure Redis 缓存时,由于在默认情况下 redis-cli 不支持 SSL ,所以 redis-cli 会通过非 SSL 端口创建连接。如果 Azure Redis 缓存禁用 Non-SSL 端口,就会出现 redis-cli 无法连接这种情况。

解决方案

本文主要使用以下两种方式连接到 Azure Redis 缓存。

  • 通过非 SSL 端口( 6379 )连接到 Azure Redis 缓存。
  • 通过 SSL 端口( 6380 )连接到 Azure Redis 缓存。

前提条件

在客户端安装 redis-cli ,本文使用的是 Redis-x64-3.2.100。您可以点击 这里 下载 redis-cli。

通过非 SSL 端口( 6379 )连接到 Azure Redis 缓存

启用非 SSL 端口

重要事项

如果使用非 SSL 端口创建连接,数据以及访问密钥会通过 TCP 以明文的方式传输。

Azure 门户中使用 “浏览” 边栏选项卡访问缓存, 选择所需的缓存,在 “高级设置” 边栏选项卡中的 “仅允许通过 SSL 访问” 单击 “”,并单击 “保存”。

redisconfigure_portal

也可以通过 PowerShell 执行以下代码启动非 SSL 端口。有关使用 PowerShell 管理 Redis 缓存的详细信息,请参阅使用 Azure PowerShell 管理 Azure Redis 缓存

Set-AzureRmRedisCache -resourcegroupname <资源组名称> -Name <Redis 缓存名称> -EnableNonSSLPort 1

enablenonssl

连接到 Azure Redis 缓存

使用以下命令连接到 Azure Redis 缓存。

redis-cli.exe -h < Redis 主机名称> -a <访问密钥>

截图如下:

nonsslconnect

通过 SSL 端口连接到 Azure Redis 缓存

检查非 SSL 端口

通过 Azure 门户 检查 Azure Redis 缓存是否仅允许通过 SSL 访问(禁用非 SSL 端口)。

disablenonssl

或者使用 Powershell 执行以下命令设置 Azure Redis 缓存仅允许通过 SSL 访问。

Set-AzureRmRedisCache -resourcegroupname <资源组名称> -Name <Redis 缓存名称> -EnableNonSSLPort 0

disablenonssl

设置 SSL 代理

  1. 下载并安装 stunnel。本文环境:Windows 10 64-bit, stunnel-5.44-win32-installer.exe。

    安装完成后可通过以下命令检查是否安装成功:

    redis-cli -v
    

    checkinstallresut

  2. 打开 stunnel GUI Start,点击 "Configuration" -> "Edit Configuration" 。将以下代码添加到配置文件。

    [redis-cli]
    client = yes
    accept = 127.0.0.1:6380
    connect = <Redis 主机名称>:6380
    

    截图如下:

    editconfig

  3. 点击 "Configuration"->"Reload Configuration"。

  4. 使用以下命令连接到 Azure Redis 缓存.

    redis-cli.exe -p 6380 –a <访问密钥>
    

    sslconfig

    通过截图我们可以看到 redis-cli 可以通过本机 6380 端口与 Azure Redis 缓存建立连接,并获取 Azure Redis 缓存数据。