猿问
下载APP

python如何选择redis数据库?

选择redis数据库,select 1,select 2

但是在python中是怎么操作的?我只知道r = redis.Redis(host='localhost',port=6379,db=0)

这个db如何切换,难道每次都要redis.Redis(host='localhost',port=6379,db=1),

redis.Redis(host='localhost',port=6379,db=2)吗


九州编程
浏览 561回答 2
2回答

交互式爱情

程序是死的,但规则是人定的,官网不让这么做,并不是说不能实现,是会造成数据库指向的错误。其实你在不怕这种错误的情况下,自己去看看redis模块的各种方法源码,在方法定义的地方自己加上一个select方法就可以了,不忘了给Redis类一个current_db属性来标记当前数据库。当然我没试过,只是提供一种思路。

DIEA

是的,目前只能这样。 原因是redis-py为了保证Redis实例的线程安全,没有实现SELECT指令Redis 客户端实例可以安全地在线程间共享。从内部实现来说,只有在命令执行时才获取连接实例,完成后直接返回连接池,命令永不修改客户端实例的状态。但是,有一点需要注意:SELECT 命令。SELECT 命令允许切换当前连接使用的数据库。新的数据库保持被选中状态,直到选中另一个数据库或连接关闭。这会导致在返回连接池时,连接可能指定了别的数据库。因此,redis-py 没有在客户端实例中实现 SELECT 命令。如果要在同一个应用中使用多个 Redis 数据库,应该给第一个数据库创建独立的客户端实例(可能也需要独立的连接池)。参考官方文档-线程安全中文文档-线程安全
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答