Python3 aioredis升级到2.0后create_redis_pool连接问题

aioredis升级到2.0后,会发现create_redis_pool来创建连接池的方法无法使用,源码中也找不到这个方法了。

 

通过官方文档查看得知,2.0后已经舍弃了create_redis_pool的连接方式,整个核心和公共 API 已被重新编写,以尽可能地遵循redis-py的实现不再通过调用来连接到 redis await aioredis.create_pool(...)。相反,默认的初始化模式与redis-py相同:

 

 

连接示例:

import asyncio
import aioredis


async def main():
    # Redis client bound to single connection (no auto reconnection).
    redis = aioredis.from_url(
        "redis://localhost", encoding="utf-8", decode_responses=True
)

    async with redis.client() as conn:
        await conn.set("my-key", "value")
        val = await conn.get("my-key")
    print(val)

async def redis_pool():
    # Redis client bound to pool of connections (auto-reconnecting).
    redis = aioredis.from_url(
        "redis://localhost", encoding="utf-8", decode_responses=True
    )
    await redis.set("my-key", "value")
    val = await redis.get("my-key")
    print(val)

if __name__ == "__main__":
    asyncio.run(main())
    asyncio.run(redis_pool())

 

如果redis更改了端口,密码或者需要指定DB等,像pyredis一样直接指定参数即可

redis = aioredis.from_url(
    "redis://127.0.0.1", port=44117, password='qwaszx', db=2, encoding="utf-8", decode_responses=True
)

 

参考:

https://aioredis.readthedocs.io/en/latest/migration/#connecting-to-redis

 

推荐这些文章:

【redis】redis 查询key数量

方法1、dbsize
dbsize 显示当前库key的数量

 
 
方法2 、info keyspace
info keyspace 可以看到所有库key的数量

 
 
方法3、keys pattern

 

...

Python3 学习笔记---线程、进程、协程

一、线程

from threading import Thread #线程类
# 多线程方式一
def fn(name):
for i in range(10):
print('线程{}'.format(name),i)

if __name__ == '__main__':
t = Thread(target=fn,args=("jj",)) # target 指定任务名称, args:传入参数,必须为数组类型,后边的逗号不能缺
t.start() #指定多线程状态为可执行状态,具体执行时间又CPU决定
for i in ...

Centos Python2升级Python3

服务器版本:CentOS 7.3 64位
旧Python版本:2.7.5
新Python版本:3.8.0
说明:本次配置使用root用户进行操作,故在代码中未使用sudo语句,请使用非root用户留意
1、切换工作目录至/usr/local
在Linux系统下,路径/usr/local相当于C:/Progrem Files/,通常安装软件时便安装到此目录下。
执行命令:
cd /usr/local

2、下载目标python版本压缩包
执行命令:
wget http://npm.taobao.org/mirrors/python/3.8.0/Python-3.8.0.tgz

这里,我使用的...

aiomysql,aiomongo,aioredis

aiomysql,aiomongo,aioredis
 

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

pool = await aiomysql.create_pool(host=self.redis_ip, port=3306,
             &nbs...

aiomysql、asyncpg、aioredis

aiomysql、asyncpg、aioredis

楔子
Python 目前已经进化到了 3.8 版本,对操作数据库也提供了相应的异步支持。当我们做一个 Web 服务时,性能的瓶颈绝大部分都在数据库上,如果一个请求从数据库中读数据的时候能够自动切换、去处理其它请求的话,是不是就能提高并发量了呢。
下面我们来看看如何使用 Python 异步操作 MySQL、PostgreSQL 以及 Redis,以上几个可以说是最常用的数据库了。至于 SQLServer、Oracle,本人没有找到相应的异步驱动,有兴趣可以自己去探索一下。
而操作数据库无非就是增删改查,下面我们来看看如何异步实现它们。...

Python 原生协程------asyncio(选自公众号)

  所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知。
Asyncio 是并发(concurrency)的一种方式。对 Python 来说,并发还可以通过线程(threading)和多进程(multiprocessing)来实现。
Asyncio 并不能带来真正的并行(parallelism)。当然,因为 GIL(全局解释器锁)的存在,Python 的多线程也不能带来真正的并行。
可交给 asyncio 执行的任务,称为协程(coroutine)。一个协程可以放弃执行,把机会让给其它协程(即 yield from&nbs...

MySQL异步驱动aiomysql

 
  本文介绍异步MySQL异步驱动aiomysql的使用
  1,安装异步模块
  如果没有模块则先使用pip安装模块

?

1
2

pip3 install asyncio
pip3 install aiomysql

  2,创建MySQL数据库连接池
  和同步方式不一样的是使用异步不能直接创建数据库连接conn,需要先创建一个数据库连接池对象__pool通过这个数据库连接池对象来创建数据库连接
  数据库配置信息和介绍pymysql同步使用的数据库是一样的

?

1
2
3
4
5
6
7
8
9
10
11
12
13
...

Sublime Text 配置 python3 环境

 
 
 一、环境准备
     Sublime 官网:https://www.sublimetext.com/
     Python3 官网:https://www.python.org/
 
     我们在写 python 代码的时候,常用的编辑器有 Pycharm、Sublime 等,其中 Pycharm 比较重,耗内存比较多,而 Sublime 属于轻量点的,一般用来写小型的项目。
     Windows 10 安装p...

UI自动化之 python2.7 升级到python3.6 module 'sys' has no attrbute 'setdefaultencoiding'报错

借鉴博客 https://blog.csdn.net/yimixgg/article/details/82144152
正常情况下,我们在使用python做页面开发时,防止中文出现乱码问题,python2 情况下会使用:如下语句——
import requests, re, sys

reload(sys)

sys.setdefaultencoding("utf-8")

但在python3下,报错:

sys.setdefaultencoding('utf-8')

AttributeError: module 'sys' has no attribute 'setdefaul...

文章标题:Python3 aioredis升级到2.0后create_redis_pool连接问题
文章链接:https://www.dianjilingqu.com/4594.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>