连接数据库

redis库提供了StrictRedisRedis两个类来建立Redis数据库的连接,但是请注意,在新版的redis库中,StrictRedis类已经被废弃并成为了Redis类的别名,所以这两个类现在是执行相同的功能。

建立数据库连接可以使用以下两种方式:

import redis


# 以默认方式连接到数据库
connection = redis.Redis(host='localhost', port=6379, db=0)
# 以URL方式连接到的数据库
connection = redis.Redis.from_url('redis://@localhost:6379/0')

Redis类提供的数据库连接本身是线程安全的,可以将连接放到程序自身的一个模块中来引用使用。除此之外redis库还提供了连接池,同样是线程安全的,可以按照以下方式来使用。

import redis


# 以默认方式建立连接池
pool = redis.ConnectionPool(host='localhost', port=6379, db=0)
# 以URL方式建立连接池
pool = redis.ConnectionPool.from_url('redis://@localhost:6379/0')

# 使用连接池建立数据库连接
connection = redis.Redis(connection_pool=pool)

redis库在每次执行请求时都会创建和断开一次连接操作,这在进行多次请求时效率不高,所以redis库提供了管道(pipline)功能来一次性指定全部请求命令。使用格式示例如下:

import redis


pool = redis.ConnectionPool(host='localhost', port=6379, db=0)
connection = redis.Redis(connection_pool=pool)
pipe = connection.pipline()

# 进行请求操作
pipe.set('name', 'jack')
# 管道可以执行链式操作
pipe.set('role', 'admin').sadd('foo', 'boo')

# 提交全部操作
pipe.execute()