帮你快速理解、总结文档立即下载

Python 连接示例

最近更新时间:2026-08-14 15:52:31
我的收藏
本文介绍使用 Python 客户端连接腾讯云分布式缓存数据库实例的示例。

准备工作

环境要求

Python 3.7及以上版本。
pip 包管理器。

安装客户端

pip install redis

Running Environment

Operating System: Ubuntu 24.04.3 LTS / x86_64

Runtime Version: GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)

获取连接信息

2. 在实例列表中,单击目标实例 ID,进入实例详情页。
3. 网络信息区域,获取 VIP 地址端口(默认6379)。
4. 配置信息区域,获取实例的连接密码。
默认账号使用实例 ID:密码 格式,自定义账号使用用户名@密码 格式;免密认证实例无需密码。

连接示例

代理模式下,客户端通过 Proxy 代理层提供的统一 VIP 地址连接实例,Proxy 自动处理请求路由和故障转移,客户端无需感知后端拓扑变化。

连接池示例(推荐)

import redis

# 创建连接池
pool = redis.ConnectionPool(
host='192.xx.xx.2', # 实例 VIP 地址
port=6379, # 实例端口
password='crs-xxxx:密码', # 默认账号密码格式:实例ID:密码
db=0, # 数据库编号
max_connections=200, # 最大连接数
socket_connect_timeout=2, # 连接超时(秒)
socket_timeout=2, # 读写超时(秒)
decode_responses=True, # 自动解码为字符串
health_check_interval=30 # 健康检查间隔(秒)
)

# 创建 Redis 客户端
r = redis.Redis(connection_pool=pool)

# 写入数据
r.set('name', '腾讯云分布式缓存数据库')

# 读取数据
value = r.get('name')
print(f'get name: {value}')

# 设置带过期时间的 Key
r.setex('session:user123', 3600, 'session_data')

# 哈希操作
r.hset('user:1001', mapping={'name': '张三', 'age': '28'})
user_info = r.hgetall('user:1001')
print(f'user info: {user_info}')

# 列表操作
r.lpush('queue:tasks', 'task1', 'task2', 'task3')
task = r.rpop('queue:tasks')
print(f'dequeued task: {task}')

# Pipeline 批量操作
pipe = r.pipeline()
pipe.set('key1', 'value1')
pipe.set('key2', 'value2')
pipe.set('key3', 'value3')
pipe.get('key1')
pipe.get('key2')
pipe.get('key3')
results = pipe.execute()
print(f'pipeline results: {results}')

自定义账号连接示例

import redis

# 自定义账号密码格式:用户名@密码
pool = redis.ConnectionPool(
host='192.xx.xx.2',
port=6379,
password='myuser@MyPassword', # 代理模式自定义账号:用户名@密码整体作为密码传入
db=0,
max_connections=200,
socket_connect_timeout=2,
socket_timeout=2,
decode_responses=True
)

r = redis.Redis(connection_pool=pool)
r.set('key', 'value')
print(r.get('key'))

SSL 加密连接示例

import redis

# SSL 加密连接
pool = redis.ConnectionPool(
host='192.xx.xx.2',
port=6379,
password='crs-xxxx:密码',
db=0,
max_connections=200,
socket_connect_timeout=2,
socket_timeout=2,
decode_responses=True,
ssl=True, # 启用 SSL
ssl_ca_certs='/path/to/ca.pem', # CA 证书路径
ssl_cert_reqs='required' # 验证服务端证书
)

r = redis.Redis(connection_pool=pool)
r.set('ssl_test', 'encrypted_connection')
print(r.get('ssl_test'))

异步连接示例(asyncio)

import asyncio
import redis.asyncio as aioredis

async def main():
# 创建异步连接池
pool = aioredis.ConnectionPool(
host='192.xx.xx.2',
port=6379,
password='crs-xxxx:密码',
db=0,
max_connections=200,
socket_connect_timeout=2,
socket_timeout=2,
decode_responses=True
)

r = aioredis.Redis(connection_pool=pool)

# 异步写入
await r.set('async_key', 'async_value')

# 异步读取
value = await r.get('async_key')
print(f'async get: {value}')

# 异步 Pipeline
pipe = r.pipeline()
pipe.set('key1', 'value1')
pipe.set('key2', 'value2')
pipe.get('key1')
pipe.get('key2')
results = await pipe.execute()
print(f'async pipeline: {results}')

# 关闭连接
await r.aclose()
await pool.aclose()

asyncio.run(main())

连接参数说明

参数
说明
推荐值
host
实例连接地址。
-
port
实例端口号
6379
password
认证密码
默认账号格式:实例 ID:密码
max_connections
最大连接数
200
socket_connect_timeout
连接超时(秒)
2
socket_timeout
读写超时(秒)
2
health_check_interval
健康检查间隔(秒)
30
decode_responses
自动解码响应为字符串
True
retry_on_timeout
超时自动重试
True

常见问题

连接超时

确认客户端所在 CVM 与分布式缓存数据库实例在同一 VPC 内。
确认安全组规则已放通对应端口。
确认连接地址和端口正确。

连接池耗尽

检查 max_connections 是否设置合理。
确认业务代码中没有连接泄漏(未正确释放连接)。
考虑增大连接池或优化业务并发模型。