Redis 缓存

安装

安装 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 的一些操作指令,用的时候再查,这里就不一 一列举了

相关推荐
行百里er13 分钟前
Redis Streams——有确认、能回溯的消息队列
redis
上位机妹子28 分钟前
EF Core 两种继承映射:每层次一张表(TPH)与每类型一张表(TPT)
数据库·c#·.netcore·ef core
小马同学-33 分钟前
Redis消息队列与客户端编程
数据库·redis
weixin1997010801638 分钟前
《1688图片空间API踩坑:img.upload 与 album.* 的防盗链与CDN缓存问题》(附Python源码)
开发语言·python·缓存
for_ever_love__1 小时前
MySQL 高频面试题 30 问:索引、事务、锁、日志、主从与分库分表(MySQL 8.0 版)
java·数据库·spring boot·mysql·spring cloud·面试·总结
染指11101 小时前
140.Agent-多Agent框架-Agent执行Skills流程
数据库·人工智能·设计模式·langchain·agents
fengkai45451 小时前
十二、Redis -2
运维·数据库·redis·容器
hweiyu001 小时前
Redis命令:BLPOP
redis·缓存