【协程】12、案例1:异步操作redis
在使用python代码操作Redis时,连接/操作/断开都是IO。
pip3 install aioredis# -*- coding: utf-8 -*-
import asyncio
import aioredis
async def execute(address, password):
print('开始执行:{}'.format(address))
# 网络IO操作,创建redis连接 ;await就是等待有结果后才会继续往下执行
redis = await aioredis.create_redis(address, password=password)
print('redis:{}'.redis)
# await等待hmset_dict创建成功后才会往下走
await redis.hmset_dict('car', key1=1, key2=3, keys=3)
# 网络IO操作,去redis中获取值
result = await redis.hgetall('car', encoding='utf-8')
print('result:{}'.format(result))
redis.close()
# 网络IO操作,关闭redis连接
await redis.wait_closed()
print('结束:{}'.format(address))
loop = asyncio.get_event_loop()
loop.run_until_complete(execute('redis://47.94.132.145:6379', 'root')) 示例2:
# -*- coding: utf-8 -*-
import asyncio
import aioredis
async def execute(address, password):
print('开始执行:{}'.format(address))
# 网络IO操作,创建redis连接 ;await就是等待有结果后才会继续往下执行
redis = await aioredis.create_redis(address, password=password)
print('redis:{}'.redis)
# await等待hmset_dict创建成功后才会往下走
await redis.hmset_dict('car', key1=1, key2=3, keys=3)
# 网络IO操作,去redis中获取值
result = await redis.hgetall('car', encoding='utf-8')
print('result:{}'.format(result))
redis.close()
# 网络IO操作,关闭redis连接
await redis.wait_closed()
print('结束:{}'.format(address))
tasks = [
asyncio.ensure_future(execute('redis://47.94.132.145:6379', 'root')),
asyncio.ensure_future(execute('redis://47.94.132.145:6379', 'root'))
]
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(tasks))本文来自博客园,作者:郭祺迦,转载请注明原文链接:https://www.cnblogs.com/guojie-guojie/p/16330274.html

浙公网安备 33010602011771号