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

Python redis 安装和使用介绍

python redis安装和使用

    • 一、Redis 安装
      • 1.1、Windows安装
    • 二、安装 redis 模块
    • 二、使用redis 实例
      • 1.1、简单使用
      • 1.2、连接池
      • 1.3、redis 基本命令 String
        • 1.3.1、ex - 过期时间(秒)
        • 1.3.2、nx - 如果设置为True,则只有name不存在时,当前set操作才执行 (新建)
        • 1.3.3 、setnx(name, value)
        • 1.3.4、 setex(name, time, value)

一、Redis 安装

安装教程链接如下:点击查看

1.1、Windows安装

本人本地是Windows系统,下载redis压缩包的地址为:点击下载地址:https://github.com/tporadowski/redis/releases,大家也可以直接下载我上传的安装包,是redis-x64-5.0.14.1版本.

选择合适的版本:
在这里插入图片描述
下载成功后,打开文件夹,内容如下:
在这里插入图片描述
最后是启动服务:
打开一个 cmd 窗口 使用 cd 命令切换目录到 C:\redis 运行:

redis-server.exe redis.windows.conf

如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:
在这里插入图片描述

二、安装 redis 模块

上一步已经启动了服务,这时候要使用redis喽。
Python 要使用 redis,需要先安装 redis 模块:

sudo pip3 install redis
或
sudo easy_install redis
或
sudo python setup.py install

或者在编辑器里导入哈,导入路径如下:
点击文件 -》设置 -》选择项目 python解释器 -》安装;
然后搜索要安装的redis模块,最后安装就可以喽,,,不如命令行方便哈
在这里插入图片描述
在这里插入图片描述

二、使用redis 实例

使用文档:点击查看使用文档

1.1、简单使用

import redis   # 导入redis 模块r = redis.Redis(host='localhost', port=6379, decode_responses=True)   
r.set('name', 'runoob')  # 设置 name 对应的值
print(r['name'])
print(r.get('name'))  # 取出键 name 对应的值
print(type(r.get('name')))  # 查看类型

最后结果如下:
在这里插入图片描述

1.2、连接池

redis-py 使用 connection pool 来管理对一个 redis server 的所有连接,避免每次建立、释放连接的开销。

默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数 Redis,这样就可以实现多个 Redis 实例共享一个连接池。

import redis    # 导入redis 模块pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(host='localhost', port=6379, decode_responses=True)   
r.set('name', 'runoob')  # 设置 name 对应的值
print(r.get('name'))  # 取出键 name 对应的值

1.3、redis 基本命令 String

set(name, value, ex=None, px=None, nx=False, xx=False)
在 Redis 中设置值,默认,不存在则创建,存在则修改。
参数:

  • ex - 过期时间(秒)
  • px - 过期时间(毫秒)
  • nx - 如果设置为True,则只有name不存在时,当前set操作才执行
  • xx - 如果设置为True,则只有name存在时,当前set操作才执行
1.3.1、ex - 过期时间(秒)

到了过期时间,键对应的的值就变成None

import redispool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.set('food', 'mutton', ex=3)    # 这是秒,key是"food" value是"mutton" 将键值对存入redis缓存
#r.set('food', 'beef', px=3) # 这是毫秒
print(r.get('food'))  # mutton 取出键food对应的值
1.3.2、nx - 如果设置为True,则只有name不存在时,当前set操作才执行 (新建)
import redispool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
print(r.set('fruit', 'watermelon', nx=True))    # True--不存在
# 如果键fruit不存在,那么输出是True;如果键fruit已经存在,输出是None
1.3.3 、setnx(name, value)

设置值,只有name不存在时,执行设置操作(添加)

1.3.4、 setex(name, time, value)

设置值
参数:
time - 过期时间(数字秒 或 timedelta对象)

import redis
import timepool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.setex("fruit2", 5, "orange")
time.sleep(5)
print(r.get('fruit2'))  # 5秒后,取值就从orange变成None

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 计算机考研408-计算机网络
  • 【Java】并发集合
  • 【小波去噪】【matlab】基于小波分析的一维信号滤波(对照组:中值滤波、均值滤波、高斯滤波)
  • Linux 信号的产生
  • 同为TVT设备主动注册协议接入SVMSPro平台
  • 电子看板实时监控数据可视化助力工厂精细化管理
  • 【CTF Reverse】XCTF GFSJ1101 Mine- Writeup(反编译+动态调试+Base58编码)
  • go多线程
  • SysML图例-制药
  • 算法.图论-并查集上
  • 一款全看个人造化的Windows命令行软件下载安装管理器:Scoop
  • Revit学习记录-版本2018【持续补充】
  • python SQLAlchemy 数据库连接池
  • Robot Operating System——32 位浮点数表示的三维空间中一个点
  • 鸿蒙逐渐成为全球操作系统领域的重要一员
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【技术性】Search知识
  • create-react-app项目添加less配置
  • JS变量作用域
  • ng6--错误信息小结(持续更新)
  • Python3爬取英雄联盟英雄皮肤大图
  • select2 取值 遍历 设置默认值
  • SpringBoot 实战 (三) | 配置文件详解
  • tab.js分享及浏览器兼容性问题汇总
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • Wamp集成环境 添加PHP的新版本
  • 产品三维模型在线预览
  • 彻底搞懂浏览器Event-loop
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 关于Flux,Vuex,Redux的思考
  • 基于 Babel 的 npm 包最小化设置
  • 前端性能优化——回流与重绘
  • 前端之Sass/Scss实战笔记
  • 前嗅ForeSpider教程:创建模板
  • 使用parted解决大于2T的磁盘分区
  • 微信小程序开发问题汇总
  • 在Mac OS X上安装 Ruby运行环境
  • 仓管云——企业云erp功能有哪些?
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • # .NET Framework中使用命名管道进行进程间通信
  • # 安徽锐锋科技IDMS系统简介
  • #LLM入门|Prompt#3.3_存储_Memory
  • #QT 笔记一
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (1)(1.9) MSP (version 4.2)
  • (二)pulsar安装在独立的docker中,python测试
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (正则)提取页面里的img标签
  • (转)setTimeout 和 setInterval 的区别