基于异步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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Oracle Java:NLS_区域是否足以正确格式化数字?   java开放Api$ref以使用url   如何在java中使用synchronized方法实现线程的同步?   java无法创建JVM Android studio   使用基本Java检查两个字符串是否是彼此的字谜   spring:如何将java安全配置转换为yml   java如何扩展任何移动服务提供商的SMSC?   如何转换java。util。日期到soap支持的日期格式“yyyyMMdd'T'HH:mm:ss”,带区域id   java Hibernate:中间关系   java从main中的其他类调用方法   java找出由两个长历元值表示的两个日期之间的差异   java更新cloudera quickstart vm以使用java7   java jOOQ将字符串转换为布尔值   java定制Android Spinner XML w/SpinnerAdapter?