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

相关推荐
The_Ticker8 分钟前
CFD平台如何接入实时行情源
java·大数据·数据库·人工智能·算法·区块链·软件工程
Elastic 中国社区官方博客14 分钟前
Elasticsearch 开放推理 API 增加了对 IBM watsonx.ai Slate 嵌入模型的支持
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
企鹅侠客18 分钟前
ETCD调优
数据库·etcd
Json_1817901448024 分钟前
电商拍立淘按图搜索API接口系列,文档说明参考
前端·数据库
煎饼小狗36 分钟前
Redis五大基本类型——Zset有序集合命令详解(命令用法详解+思维导图详解)
数据库·redis·缓存
永乐春秋1 小时前
WEB-通用漏洞&SQL注入&CTF&二次&堆叠&DNS带外
数据库·sql
打鱼又晒网1 小时前
【MySQL】数据库精细化讲解:内置函数知识穿透与深度学习解析
数据库·mysql
大白要努力!2 小时前
android 使用SQLiteOpenHelper 如何优化数据库的性能
android·数据库·oracle
tatasix2 小时前
MySQL UPDATE语句执行链路解析
数据库·mysql
秋意钟2 小时前
缓存雪崩、缓存穿透【Redis】
redis