一、安装Redis扩展库
安装redis扩展库
pip install redis
二、使用python操作Redis
1、Redis和StrictRedis
redis扩展库提供Redis和StrictRedis两个类来实现Redis的命令操作。StrictRedis实现了官方的命令,Redis是它的子类,兼容老版本,扩展库没有实现select方法,但是可以通过连接时指定使用的库。
2、Redis的连接
1、简单连接
导入redis,创建Redis对象,所有命令行下的命令在代码中都是Redis对象的方法,比如:set()方法对应Redis命令中的set方法。
2、连接池
多个redis对象使用同一个连接池进行连接,避免了多次连接、断开等操作的系统开销
3、使用管道(pipeline)
(1)可以记录多个操作,然后一次将操作发送至数据库,避免了多次向服务器发送少量的数据
(2)多个操作可以依次进行保存,然后发送,也可以进行连贯操作
常用的连接举例:
简单连接:
from redis import StrictRedis
redis = StrictRedis(host='localhost',port=6379,db=0,password="密码")
连接池连接:
from redis import StrictRedis,ConnectionPool
pool = ConnectionPool(host='localhost',port=6379,db=0,password="密码")
redis = StrictRedis(connection_pool=pool)
上面我们传入了Redis的地址(localhost)、运行端口(6379)、使用的数据库(0)、数据库的密码等信息。
4、在开发中Redis的应用
在项目的初始化部分创建redis连接池,官方推荐使用StrictRedis方法,当使用了连接池,初始化设置都需要通过ConnectionPool传入参数,设置了decode_responses,默认存入取出自动编码解码,也就是以str存入,str取出,存入int也会被转为str
pool_my1 = redis.ConnectionPool(host=config.REDIS_HOST,port='6379',db=1,decode_responses=True)
my1_redis = redis.StrictRedis(connection_pool=pool)
pool_my2 = redis.ConnectionPool(host=config.REDIS_HOST,port='6379',db=2,decode_responses=True)
my2_redis = redis.StrictRedis(connection_pool=pool)
设置redis的键和值
key = f'自定义+具有标志性的名称'
my1_redis.set(key,1,ex = 60 * 60*24)#有效期一天
Redis Pttl 命令:以毫秒为单位返回 key 的剩余过期时间。
expire = int(my1_redis.pttl(key)/1000)
my1_redis.set(key,2,ex = expire)#有效期为key的剩余过期时间