asyncio-redis 是 Python asyncio 的 Redis 客户端 (PEP 3156)。这个 Redis 库是完全异步的,Reids 服务器非阻塞客户端,依赖于 asyncio,所以要求 Python 3.3. 以上版本。
pip install asyncio-redis
接下来,我们就是要开始写代码啦。
首先。
创建一个redisUtils.py
class Redis:
"""
A simple wrapper class that allows you to share a connection
pool across your application.
"""
_pool = None
async def get_redis_pool(self):
REDIS_CONFIG = {'host': 'localhost', 'port': 6379}
try:
from config import REDIS_CONFIG
except:
pass
if not self._pool:
self._pool = await asyncio_redis.Pool.create(
host=REDIS_CONFIG['host'], port=REDIS_CONFIG['port'], password=REDIS_CONFIG.get('password'), poolsize=10
)
return self._pool
async def close(self):
if self._pool:
self._pool.close()
再创建一个run.py
from utils.redisUtils import Redis #引用上面的配置
import json as jsonn
redis = Redis()
r = await redis.get_redis_pool()
key = '/hushuai/product'
await r.set(key, 'value')
val = await r.get(key)
print(val)
key_list = '/hushuai/product_list'
product_list_size = await r.llen(key_list)
print(product_list_size)
if product_list_size != 0:
if product_list_size > start_page:
product_list = await r.lrange(key, start_page, end_page)
product_list = await product_list.aslist()
product_list_other = []
for i in product_list:
product_list_other.append(jsonn.loads(i.replace('\'', '\"').replace('None', '""')))
data = [product_list_size, product_list_other]
else:
data = await get_items(app.pool,"product_view",re_params,with_total=with_total,pager=pager)
else:
data = await get_items(app.pool, "product_view", re_params, with_total=with_total, pager=pager)
data_redis = await get_items(app.pool, "product_view", re_params)
list = []
for product_data in data_redis:
list.append(str(product_data))
if list:
await r.rpush(key, list)
本文主要讲的是python 使用异步redis的方式,所以本人只是做了redis的str和list两种类型的数据处理。
实现就是这么简单。
现在的Python的异步redis,有三种(asynio_redis,aioredis,aredis)
我也在网上看到了aioredis的使用方法。
链接发一下。
aioredis:
https://blog.csdn.net/ydyang1126/article/details/78222580?locationNum=3&fps=1
aredis:
https://www.ctolib.com/aredis.html
https://github.com/NoneGG/aredis/tree/master/examples