如何与discord.py一起使用aioredis ?



如何使用aioredis和discord.py?

问题是我不知道如何使用discord.ext.commands与aioredis.create_redis_pool。

我要通过

from discord.ext import commands
@bot.command("get_count")
async def get_count(ctx):
count = get_reactions_count()
# I need to somehow define async redis connection and use it here for example
await ctx.send("some text")
bot = commands.Bot()
bot.run(config.TOKEN)

但是在这种情况下我如何定义redis客户端?

我知道我们可以这样做,但这是最优解决方案吗?
@bot.command("get_count")
async def get_count(ctx):
redis = await aioredis.create_redis_pool(
'redis://localhost')
count = get_reactions_count()
# and use redis connection here
await ctx.send("some text")

为了使连接保持活跃,您可以简单地将其作为所谓的"bot变量"。

bot.my_variable = 'whatever'

您可以对池执行相同的操作,有两种方法:

1。

@bot.event
async def on_ready():
bot.pool = await aioredis.create_redis_pool(...)
  • bot.pool = bot.loop.run_until_complete(aioredit.create_redis_pool(...))
    

    简单使用bot.pool.some_method

    第二种方式是首选方式,on_ready事件可以多次调用。

    您还想要"连接"redis事件循环与bot的循环,从文档中我可以看到aioredis.create_redis_poolloop作为可选参数。

    await aioredis.create_redis_pool(..., loop=bot.loop)
    

    相关内容

    • 没有找到相关文章

    最新更新