aioredis实战总结:set和get方法参数详解
创作时间:
作者:
@小白创作中心
aioredis实战总结:set和get方法参数详解
引用
CSDN
1.
https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/146038068
在Python异步编程中,aioredis是一个非常重要的库,它提供了异步的Redis客户端,能够帮助开发者更高效地进行缓存操作。本文将详细介绍aioredis中set和get方法的参数使用,帮助开发者更好地掌握这些核心功能。
1. set 方法参数详解
方法原型:
await redis.set(key, value, ex=None, px=None, nx=False, xx=False, keepttl=False)
核心参数:
- key (str):存储的键名
- value (str/bytes):存储的值
- ex (int/None):过期时间(秒),例如
ex=60表示 60 秒后过期 - px (int/None):过期时间(毫秒),优先级高于
ex - nx (bool):若为
True,仅当键不存在时设置值(类似SETNX命令) - xx (bool):若为
True,仅当键存在时设置值(类似SETXX命令) - keepttl (bool):保留键原有的过期时间(需 Redis 6.0+)
示例:
import asyncio
import aioredis
async def main():
# 创建连接池
redis = await aioredis.create_redis_pool('redis://localhost:6379')
# 设置键值对,60秒后过期,且仅在键不存在时设置
await redis.set("user:1001", "Alice", ex=60, nx=True)
# 关闭连接
redis.close()
await redis.wait_closed()
asyncio.run(main())
2. get 方法参数详解
方法原型:
await redis.get(key, encoding=None)
核心参数:
- key (str):要获取的键名
- encoding (str/None):指定解码方式(如
'utf-8'),默认返回字节(bytes)
示例:
import asyncio
import aioredis
async def main():
# 创建连接池并指定编码
redis = await aioredis.create_redis_pool('redis://localhost:6379?encoding=utf-8')
# 获取键值(自动解码为字符串)
value = await redis.get("user:1001")
print(f"获取到的值:{value}") # 输出字符串,无需手动 decode()
# 关闭连接
redis.close()
await redis.wait_closed()
asyncio.run(main())
3. 综合场景示例
带过期时间和批量操作:
import asyncio
import aioredis
async def main():
redis = await aioredis.create_redis_pool('redis://localhost:6379')
# 设置带过期时间的键值
await redis.set("session:token", "abc123", ex=3600)
# 获取并手动解码(未指定 encoding 时)
token_bytes = await redis.get("session:token")
token_str = token_bytes.decode("utf-8") if token_bytes else None
print(f"Session Token: {token_str}")
# 关闭连接
redis.close()
await redis.wait_closed()
asyncio.run(main())
4. 注意事项
- 返回值类型:
- 默认返回字节(bytes),可通过
encoding参数或连接字符串(如?encoding=utf-8)自动解码为字符串。
- 错误处理:
- 键不存在时,
get返回None;set若使用nx=True且键已存在,则不执行操作。
- 性能优化:
- 使用连接池(
create_redis_pool)减少连接开销。
通过合理组合参数,可实现灵活的缓存策略(如分布式锁、短期会话存储等)。更多高级用法可参考 aioredis 官方文档。
热门推荐
轻钢龙骨防火隔墙的优点
商铺为何宁愿闲置而不降价出租?房东的短视对赌市场的迷思
基于心电图的机器学习算法在心血管疾病诊断中的应用研究
中国女乒历史地位最高的10大球星,孙颖莎刘诗雯都挤不进榜单
菠菜怎么吃才健康
Take-Two对GTA6在XSX上表现充满信心:大作质量超越硬件限制!
什么时候种芝麻最好?芝麻高产栽培技术全攻略
同拜真主,为什么伊斯兰教非要大分裂,两派往死里内斗?
如何分析pmi指数对黄金价格的影响?pmi指数的波动如何反映在黄金市场上?
生大黄与熟大黄的区别
元宵佳节至,快来看汤圆的“花样打开方式”
足球规则:深入剖析下底传中
重温痛苦:心理咨询中的治愈之道
2024最新马拉松大众等级标准及跑步指南
呼和浩特的十大硬菜,你知道多少?
亲子游热潮,6个“小而美”的亲子游项目
“竞综男团”上岗,《时差五小时》啃下了电竞团综的第一口螃蟹?
科学健身:多样化训练与心理准备助你突破极限
男生学护理专业好不好就业前景怎么样?有必要选择护理专业吗?
高敏心肌肌钙蛋白高说明什么
吃什么可以补充蛋白质
楚雄至新疆:长途旅行攻略与交通形式全解析
皇权、阁权和宦权:明代权力机构是如何运作的?
《权力与进步》:技术进步与社会繁荣的复杂关系
两位诺奖联袂新著《权力与进步:我们千年的技术与繁荣之争》
如何深入探究黄金行情分析的方法与要点?这些要点在投资中如何有效应用?
限能量高蛋白饮食:科学减肥新选择
重仓机器人概念,这位基金经理两月斩获近70%收益!科技股投资机会几何?
植物大战僵尸西游版黄眉大王攻略
双鱼座最像哪个MBTI人格类型