安装
安装 Redis
下载: Releases · tporadowski/redis (github.com)
win+r ----services.msc-----将redis 设置为手动(只是学习,如果经常用可以设置为自动)
安装 redis-py 库
pip install redis-py
Redis 和 StrictRedis
redis-py 提供 Redis 和 StrictRedis 两个类, 用来实现 Redis 命令对应的操作
StrictRedis 类实现了绝大部分官方的 Redis 命令, 参数也 一 一对应,例如 set 方法就对应 Redis 命令的 set 方法。 而 Redis 类是 StrictRedis 类的子类, 其主要功能是向后兼容旧版本库里的几个方法。为了实现兼容, Redis 类对方法做了改写, 例如 将 lrem 方法中 value 和 num 参数的位置互换,这和 Redis 命令行的参数是不一致的
官方推荐的是适应 StrictRedis 类
连接 Redis
from redis import StrictRedis
redis = StrictRedis(host='localhost', port=6379, db=0)
redis.set('name', 'Bob')
print(redis.get('name'))
b'Bob'
这里不用输入密码,说是没有设置密码。
我们在这里传入了 Redis 的地址, 端口, 使用的数据库。在默认不传参数的情况下, 地址为 localhost 端口为 6379 , 数据库为 0 (总共16个数据库, 0-15) 密码为 None
然后声明了一个 StrictRedis 对象, 并调用对象的 set() 方法, 设置了一个键值对,最后调用 get() 方法获取了设置的键值, 并打印出来
也可以使用 ConnectionPool 来连接
from redis import StrictRedis, ConnectionPool
pool = ConnectionPool(host='localhost', port=6379, db=0)
redis = StrictRedis(connection_pool=pool)
这样连接的效果也是一样的。观察源码可以发现, StrictRedis 内其实就是用 host 和 port 等参数又构造了一个 ConnectionPool, 所以直接将 ConnectionPool 当作参数传给了 StrictRedis 也一样
另外 ConnectionPool 还支持通过 URL 来构建连接, 支持以下三种
redis://[:password]@host:port/db
redis://[:password]@port/db
unix://[:password]@path/to/socket.sock?db=db
这三种 URL 分别表示创建 Redis TCP 连接, Redis TCP+SSL 连接, Redis UNIX socket 连接我们只需要构建其中任意一种即可,其中 password 部分有就写上,没有可以省略
这里用 URL 连接试一下
url = 'redis://@localhost:6379/0'
pool = ConnectionPool.from_url(url)
redis = StrictRedis(connection_pool=pool)
这里我们使用的是第一种格式,首先声明一个 Redis 连接字符串,然后调用 from_url 方法创建ConnectionPool, 接着捡起传给 StrictRedis 即可完成连接。所以使用 URL 方式连接还是比较方便的
后面就是 redis 的一些操作指令,用的时候再查,这里就不一 一列举了