当前位置: 首页 > 工具软件 > aredis > 使用案例 >

Python-sanic框架中的asynio_redis--三大异步redis方法

方茂
2023-12-01

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

 

 

 类似资料: