当前位置: 首页 > news >正文

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

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 《Java8函数式编程》学习笔记汇总
  • 科普文:从源码解读5种Redis基本数据类型
  • leetcode 2236.判断根节点是否等于字节点
  • MOELayer DEMO及注释
  • 你想活出怎样的人生?我只活一次,所以想做自己
  • LLM的训练与推断
  • 字节测开面筋大总结!!!!
  • Flutter 中自定义DNS解析的实现
  • 移动式气象站:便携科技的天气守望者
  • 制作excel模板,用于管理后台批量导入船舶数据
  • 优选算法之位运算
  • React基础知识 精简全面 推荐
  • AI绘画3分钟解决英文恐惧症,comfyui汉化插件
  • 安装python插件命令集合
  • 分布式文件存储行业解决方案和技术选型分析
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • hadoop集群管理系统搭建规划说明
  • Laravel 菜鸟晋级之路
  • mockjs让前端开发独立于后端
  • MySQL QA
  • mysql常用命令汇总
  • October CMS - 快速入门 9 Images And Galleries
  • Python3爬取英雄联盟英雄皮肤大图
  • Shell编程
  • Spring Boot快速入门(一):Hello Spring Boot
  • vue:响应原理
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 前端性能优化--懒加载和预加载
  • 想写好前端,先练好内功
  • 新书推荐|Windows黑客编程技术详解
  • 自制字幕遮挡器
  • Hibernate主键生成策略及选择
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​你们这样子,耽误我的工作进度怎么办?
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • # 达梦数据库知识点
  • #HarmonyOS:基础语法
  • #QT(QCharts绘制曲线)
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (2.2w字)前端单元测试之Jest详解篇
  • (C++17) optional的使用
  • (黑马点评)二、短信登录功能实现
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (四)进入MySQL 【事务】
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)Mysql的优化设置
  • .equals()到底是什么意思?
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .Net Memory Profiler的使用举例
  • .Net MVC + EF搭建学生管理系统