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 官方文档。
热门推荐
深圳城市职业学院:职技融通的新典范
新手上路如何快速提升车感?掌握以下这几点,老司机都夸你会开车
7月全球旅游指南:从冰岛极光到秘鲁古城
奥斯陆旅游攻略:北欧艺术之都的自然与人文完美融合
从北极光到午夜太阳:冰岛四季旅游最佳时间指南
从珠峰到峡谷:G219国道西藏段自驾全攻略
玩转马尼拉夜生活:三大区域尽享美食娱乐与文化
马尼拉全攻略:从400年历史遗迹到世界级购物中心
焦三仙水和陈皮萝卜水:科学预防积滞的食疗方案
小儿积滞怎么吃?6种食材+4款食谱帮你轻松应对
品味保定:千年古城的美食与文化之旅
安徽金寨职校:玉雕专业如何炼成“香饽饽”?
复权价助你精准把握股市波动
桂林龙脊梯田春节攻略:冬日镜面景观与民族风情全体验
龙脊梯田冬季旅游攻略:48元夜景门票,住宿交通全解析
龙脊梯田:2300年历史孕育的自然与人文美景
换换口味 西式香煎猪排 香煎猪扒 减脂期友好
申公豹阴谋拆散,姬发双儿乱世情悲歌
双十一后唐山飞上海机票价格大跳水,最低降至299元
以棋启智:将棋类游戏融入教育,培养战略思维
灵动骑士续作Steam上线,免费试玩中文版开放
蔬菜甲醛超标是谣言,三步教你安全食用
辟谣:“甲醛菜”是小概率事件,摄入风险远低于安全标准
瓦尔扎扎特成“非洲好莱坞”,近百部好莱坞电影在此取景
从亚马逊到马丘比丘:南美洲十大国家旅游精华
南京市莲花实验学校校长沈磊:寒假安全指南与手机管理建议
神秘数字99977背后隐藏了什么含义?
怡红院:贾宝玉的奢华居所与人文关怀之地
温柔算计与纯真反抗:红楼梦中宝玉与丫鬟的情感世界
2025 Steam热门恐怖游戏:11款免费佳作与付费精品推荐