更新时间:2024-10-24 GMT+08:00

Redis-py客户端连接Redis(Python)

本章节介绍使用Python Redis客户端redis-py连接Redis实例的方法。更多的客户端的使用方法请参考Redis客户端

以下操作以通过弹性云服务器上的客户端连接Redis实例为例进行说明。

连接单机、主备、Proxy集群实例建议使用redis-py,Cluster集群实例建议使用redis-py-cluster。

前提条件

  • 已成功创建Redis实例,且状态为“运行中”。创建Redis实例的操作请参考购买Redis实例
  • 已创建弹性云服务器,创建弹性云服务器的方法,请参见购买弹性云服务器
  • 如果弹性云服务器为Linux系统,该弹性云服务器必须已经安装Python编译环境。
  • 连接实例前确保客户端与Redis实例之间网络互通,具体请参考连接Redis网络要求

Redis-py客户端连接Redis

  1. 查看并获取待连接Redis实例的IP地址/域名和端口。

    具体步骤请参见查看和修改DCS实例基本信息

  2. 登录弹性云服务器。

    本章节以弹性云服务器操作系统为centos为例介绍通过Python Redis客户端连接实例。

  3. 连接Redis实例。

    如果弹性云服务器操作系统没有自带Python,可以使用yum方式安装。
    yum install python

    要求系统Python版本为3.6+,当默认Python版本小于3.6时,可通过以下操作修改Python默认版本。

    1. 删除Python软链接文件: rm -rf python
    2. 重新创建新指向Python:ln -s pythonX.X.X python,其中X为Python具体版本号。
    • 连接单机、主备、proxy集群实例
      1. 安装Python和Python Redis客户端redis-py。
        1. 如果系统没有自带Python,可以使用yum方式安装。
        2. 下载并解压redis-py。
          wget https://github.com/andymccurdy/redis-py/archive/master.zip
          unzip master.zip
        3. 进入到解压目录后安装Python Redis客户端redis-py。
          python setup.py install

          安装后执行python命令,返回如下信息说明成功安装redis-py:

          图1 执行python
      2. 使用redis-py客户端连接实例。以下步骤以命令行模式进行示例(也可以将命令写入python脚本中再执行):
        1. 执行python命令,进入命令行模式。返回如下信息说明已进入命令行模式:
          图2 进入命令行模式
        2. 在命令行中执行以下命令,连接Redis实例。
          r = redis.StrictRedis(host='XXX.XXX.XXX.XXX', port=6379, password='******');

          其中,XXX.XXX.XXX.XXX为Redis实例的IP地址/域名,“6379”为Redis实例的端口。IP地址/域名和端口获取见1,请按实际情况修改后执行。******为创建Redis实例时自定义的密码,请按实际情况修改后执行。

          界面显示一行新的命令行,说明连接Redis实例成功。可以输入命令对数据库进行读写操作。

          图3 连接redis成功
    • 连接Cluster集群实例。
      1. 安装redis-py-cluster客户端。
        1. 执行以下命令下载released版本。
          wget https://github.com/Grokzen/redis-py-cluster/releases/download/2.1.3/redis-py-cluster-2.1.3.tar.gz
        2. 解压压缩包。
          tar -xvf redis-py-cluster-2.1.3.tar.gz
        3. 进入到解压目录后安装Python Redis客户端redis-py-cluster。
          python setup.py install
      2. 使用redis-py-cluster客户端连接Redis实例。

        以下步骤以命令行模式进行示例(也可以将命令写入python脚本中再执行):

        1. 执行python命令,进入命令行模式。
        2. 在命令行中执行以下命令,连接Redis实例。如果实例为免密访问,则省略命令中的, password='******'
          >>> from rediscluster import RedisCluster
          
          >>> startup_nodes = [{"host": "192.168.0.143", "port": "6379"},{"host": "192.168.0.144", "port": "6379"},{"host": "192.168.0.145", "port": "6379"},{"host": "192.168.0.146", "port": "6379"}]
          
          >>> rc = RedisCluster(startup_nodes=startup_nodes, decode_responses=True, password='******')
          
          >>> rc.set("foo", "bar")
          True
          >>> print(rc.get("foo"))
          'bar'