快速入门:在 Python 中使用 Azure Cache for Redis

在本文中,会将 Azure Redis 缓存合并到 Python 应用中,以便能够访问 Azure 中的任何应用程序都可以访问的安全专用缓存。

跳到 GitHub 上的代码

如果要直接跳到代码,请参阅 GitHub 上的 Python 快速入门

先决条件

创建用于 Redis 的 Azure 缓存实例

  1. 若要创建缓存,请登录到 Azure 门户并选择“创建资源” 。

    Create a resource is highlighted in the left navigation pane.

  2. 在“新建”页上选择“数据库”,然后选择“Azure Cache for Redis”。

    On New, Databases is highlighted, and Azure Cache for Redis is highlighted.

  3. 在“新建 Redis 缓存”页上配置新缓存的设置。

    设置 选择值 说明
    订阅 单击下拉箭头并选择你的订阅。 要在其下创建此新的 Azure Cache for Redis 实例的订阅。
    资源组 单击下拉箭头并选择一个资源组,或者选择“新建”并输入新的资源组名称。 要在其中创建缓存和其他资源的资源组的名称。 将所有应用资源放入一个资源组可以轻松地统一管理或删除这些资源。
    DNS 名称 输入唯一名称。 缓存名称必须是包含 1 到 63 个字符的字符串,只能包含数字、字母或连字符。 该名称必须以数字或字母开头和结尾,且不能包含连续的连字符。 缓存实例的主机名是 <DNS name>.redis.cache.chinacloudapi.cn
    位置 单击下拉箭头并选择一个位置。 选择使用缓存的其他服务附近的区域
    缓存类型 下拉并选择一个 此层决定可用于缓存的大小、性能和功能。 有关详细信息,请参阅用于 Redis 的 Azure 缓存概述
  4. 选择“网络”选项卡,或选择“网络”按钮(位于页面底部) 。

  5. 在“网络”选项卡中,选择你的连接方法。

  6. 选择“下一步: 高级”选项卡,或选择页面底部的“下一步: 高级”按钮,以查看“高级”选项卡。

    Screenshot showing the Advanced tab in the working pane and the available option to select.

    • 对于“基本”或“标准”缓存,请切换非 TLS 端口的选项。 还可以选择是否要启用“Microsoft Entra 身份验证”。
    • 对于“高级”缓存,请配置非 TLS 端口、群集、托管标识和数据持久性的设置。 还可以选择是否要启用“Microsoft Entra 身份验证”。
  7. 选择“下一步: 标记”选项卡,或选择页面底部的“下一步: 标记”按钮 。

  8. 或者,在“标记”选项卡中,如果希望对资源分类,请输入名称或值。

  9. 选择“查看 + 创建” 。 随后你会转到“查看 + 创建”选项卡,Azure 将在此处验证配置。

  10. 显示绿色的“已通过验证”消息后,选择“创建”。

创建缓存需要一段时间。 可以在 Azure Cache for Redis 的“概述”页上监视进度。 如果“状态”显示为“正在运行”,则表示该缓存可供使用。

从 Azure 门户检索主机名、端口和访问密钥

若要连接到你的 Azure Cache for Redis 服务器,缓存客户端需要该缓存的主机名、端口和密钥。 在某些客户端中,这些项的名称可能略有不同。 可以从 Azure 门户检索主机名、端口和访问密钥。

  • 若要获取访问密钥,请在缓存的左侧导航中选择“访问密钥”。

    Azure Cache for Redis keys

  • 若要获取主机名和端口,请在缓存的左侧导航栏中选择“属性”。 主机名的格式为 <DNS 名称>.redis.cache.chinacloudapi.cn

    Azure Cache for Redis properties

安装 redis-py

Redis-py 是 Azure Redis 缓存的 Python 接口。 使用 Python 包工具 pip 从命令提示符安装 redis-py 包。

下面的示例使用了 Python 3 的 pip3 在 Windows 11 上从管理员命令提示符安装 redis-py

Screenshot of a terminal showing an install of redis-py interface to Azure Cache for Redis.

从缓存中读取数据以及向其中写入数据

从命令行运行 Python,并使用下面的代码测试缓存。 将 <Your Host Name><Your Access Key> 替换为 Azure Redis 缓存实例中的值。 主机名采用 <DNS name>.redis.cache.chinacloudapi.cn 形式。

>>> import redis
>>> r = redis.StrictRedis(host='<Your Host Name>',
        port=6380, db=0, password='<Your Access Key>', ssl=True)
>>> r.set('foo', 'bar')
True
>>> r.get('foo')
b'bar'

重要

对于 Azure Cache for Redis 3.0 或更高版本,请强制执行 TLS/SSL 证书检查。 连接到 Azure Cache for Redis 时,必须显式设置 ssl_ca_certs。 对于 RedHat Linux,ssl_ca_certs 位于 /etc/pki/tls/certs/ca-bundle.crt 证书模块中。

创建 Python 示例应用

创建新的文本文件,添加以下脚本,并将文件另存为 PythonApplication1.py。 将 <Your Host Name><Your Access Key> 替换为 Azure Redis 缓存实例中的值。 主机名采用 <DNS name>.redis.cache.chinacloudapi.cn 形式。

import redis

myHostname = "<Your Host Name>"
myPassword = "<Your Access Key>"

r = redis.StrictRedis(host=myHostname, port=6380,
                      password=myPassword, ssl=True)

result = r.ping()
print("Ping returned : " + str(result))

result = r.set("Message", "Hello!, The cache is working with Python!")
print("SET Message returned : " + str(result))

result = r.get("Message")
print("GET Message returned : " + result.decode("utf-8"))

result = r.client_list()
print("CLIENT LIST returned : ")
for c in result:
    print(f"id : {c['id']}, addr : {c['addr']}")

适用 Python 运行 PythonApplication1.py。 应显示如以下示例所示的结果:

Screenshot of a terminal showing a Python script to test cache access.

清理资源

如果已完成在此快速入门中创建的 Azure 资源组和资源,则可以删除它们以避免产生费用。

重要

删除资源组的操作不可逆,资源组以及其中的所有资源将被永久删除。 如果在要保留的现有资源组中创建了 Azure Redis 缓存实例,可从缓存“概述”页选择“删除”以便仅删除缓存 。

删除资源组及其 Azure Redis 缓存实例:

  1. Azure 门户中,搜索并选择“资源组”。

  2. 在“按名称筛选”文本框中,输入包含缓存实例的资源组的名称,然后从搜索结果中选择它。

  3. 在资源组页上,选择“删除资源组”。

  4. 键入资源组名称,然后选择“删除”。

    Screenshot of the Azure portal showing how to delete the resource group for Azure Cache for Redis.

后续步骤