python实现简单redis客户端(3)使用asyncio添加异步支持
来源:互联网 发布:修改sql触发器 编辑:程序博客网 时间:2024/06/05 14:55
使用Python3标准库的asyncio来进行异步连接
import asyncio@asyncio.coroutinedef create_connection(host,port, loop=None): reader, writer = yield from asyncio.open_connection(host, port, loop=loop) conn = RedisClient(reader, writer, loop=loop) return connclass RedisClient: def __init__(self,reader,writer,loop=None): self._reader = reader self._writer = writer self._loop = loop def format_command(self,*tokens, **kwargs): cmds = [] for t in tokens: cmds.append("$%s\r\n%s\r\n" % (len(t), t)) return "*%s\r\n%s" % (len(tokens), "".join(cmds)) def execute_command(self,cmd,*args,**kwargs): command = self.format_command(cmd,*args,**kwargs) self._writer.write(command.encode('utf-8')) yield from self._writer.drain() data = yield from self._reader.read(65536) return data.decode('utf-8') def set(self,key,value): result = self.execute_command("SET",key,value) return result def get(self,key): value = self.execute_command("GET",key) return valuedef main(): loop = asyncio.get_event_loop() @asyncio.coroutine def go(): conn = yield from create_connection('localhost', 6379,loop=loop) ok = yield from conn.set('love', '123') value = yield from conn.get('love') print(value) loop.run_until_complete(go())if __name__ == '__main__': main()
效果:
阅读全文
0 0
- python实现简单redis客户端(3)使用asyncio添加异步支持
- 【asyncio】python异步IO
- 【Python】asyncio异步爬虫
- Python asyncio使用范例
- python实现简单redis客户端(1)
- python的异步IO模块asyncio学习
- python的异步IO(asyncio aiohttp)
- Python之异步IO( asyncio) 协程
- Python基础-异步任务IO-asyncio
- 简单使用redis客户端
- python——asyncio模块实现协程、异步编程(一)
- python——asyncio模块实现协程、异步编程(二)
- python——asyncio模块实现协程、异步编程(三)
- 使用 aiohttp 和 asyncio 进行异步请求
- python实现简单redis客户端(2)重构
- python使用异步redis--aioredis
- JAVA实现的异步redis客户端
- python asyncio
- NYOJ 问题14 会场安排问题(结构体+贪心)
- 深度学习在目标检测进展
- Python中的元类
- 关于HCL在windows 10家庭中文版系统或者刚装的系统上无法使用的问题
- Zjnu Stadium(hdu-3047)(带权并查集)
- python实现简单redis客户端(3)使用asyncio添加异步支持
- 微分享-工作中常用到的java enum实现形式
- 浅析Linux命令之find
- (十)装饰器模式详解(与IO不解的情缘)
- HDU 4325 Flowers
- 结构体数组排序 (学生信息 按成绩排序 )
- c语言 指针
- java 之注解开发
- Scala IDE设置缩进格式