基于异步IO的Redis缓存操作工具
red-helper的Python项目详细描述
red-helper
Redis缓存工具red-cache 的 asyncio 版本.
安装
$ pip install red-helper
示例
初始化
importred_helperred_helper.new("redis://redis:6379",db=0)
或:
fromred_helperimportRedHelperfromaredisimportStrictRedisredis=StrictRedis(**{})helper=RedHelper(redis)
一般操作
importred_helperimportasynciohelper=red_helper.new("redis://redis",db=0)asyncdefsimple_operations():# 设置awaithelper.set("hello","world",ex=180)# 查询字段print(awaithelper.get("hello",default_value="WORLD!"))# 删除字段awaithelper.delete("hello")if__name__=='__main__':asyncio.get_event_loop().run_until_complete(simple_operations())
Hash
importasyncioimportred_helperhelper=red_helper.new("redis://redis",db=0)hs=helper.red_hash("red::hash")asyncdefsimple_operations():# 设置awaiths.set("hello","world",ex=180)# 查询字段print(awaiths.get("hello",default_value="WORLD!"))# 删除字段awaiths.delete("hello")if__name__=='__main__':asyncio.get_event_loop().run_until_complete(simple_operations())
###缓存
importasyncioimportred_helperhelper=red_helper.new("redis://redis",db=0)# 缓存函数返回值@helper.cache_it(lambdaasset_id:"asset::cache:key:{}".format(asset_id),ttl=180)asyncdefread_data(asset_id:int)->dict:awaitasyncio.sleep(0.1)returndict(zip(range(10),range(10)))# 删除缓存@helper.remove_it(lambdaasset_id:"asset::cache:key:{}".format(asset_id),by_return=True)asyncdefupdate_date(asset_id:int)->int:awaitasyncio.sleep(0.1)returnasset_idasyncdefmain():awaitread_data(10)awaitupdate_date(10)if__name__=='__main__':asyncio.get_event_loop().run_until_complete(main())
基于HASH的缓存
importasyncioimportred_helperhelper=red_helper.new("redis://redis",db=0)hs=helper.red_hash("red::hash")# 缓存函数返回值@hs.cache_it(lambdaasset_id:"asset::cache:key:{}".format(asset_id),ttl=180)asyncdefread_data(asset_id:int)->dict:awaitasyncio.sleep(0.1)returndict(zip(range(10),range(10)))# 删除缓存@hs.remove_it(lambdaasset_id:"asset::cache:key:{}".format(asset_id),by_return=True)asyncdefupdate_date(asset_id:int)->int:awaitasyncio.sleep(0.1)returnasset_idasyncdefmain():awaitread_data(10)awaitupdate_date(10)if__name__=='__main__':asyncio.get_event_loop().run_until_complete(main())
author:Memory_Leak
- 项目
标签: