浅析Python中怎么用Redis


python中怎么用redis?下面本篇文章给大家介绍一下python使用redis的方法,希望对大家有所帮助!

浅析Python中怎么用Redis

前面我们都是使用 Redis 客户端对 Redis 进行使用的,但是实际工作中,我们大多数情况下都是通过代码来使用 Redis 的,由于小编对 Python 比较熟悉,所以我们今天就一起来学习下如何使用 Python 来操作 Redis。【相关推荐:Redis视频教程】

环境准备

  • Redis 首先需要安装好。
  • Python 安装好(建议使用 Python3)。
  • RedisPython 库安装好(pip install redis)。

开始实践

小试牛刀

例:我们计划通过 Python 连接到 Redis。然后写入一个 kv,最后将查询到的 v 打印出来。

直接连接

#!/usr/bin/python3

import redis   # 导入redis模块

r = redis.Redis(host='localhost', port=6379, password="pwd@321", decode_responses=True)   # host是redis主机,password为认证密码,redis默认端口是6379
r.set('name', 'phyger-from-python-redis')  # key是"name" value是"phyger-from-python-redis" 将键值对存入redis缓存
print(r['name'])  # 第一种:取出键name对应的值
print(r.get('name'))  # 第二种:取出键name对应的值
print(type(r.get('name')))

1.png

2.png

其中的 get 为连接池最后一个执行的命令。

连接池

通常情况下,需要连接 redis 时,会创建一个连接,基于这个连接进行 redis 操作,操作完成后去释放。正常情况下,这是没有问题的,但是并发量较高的情况下,频繁的连接创建和释放对性能会有较高的影响,于是连接池发挥作用。

连接池的原理:预先创建多个连接,当进行 redis 操作时,直接获取已经创建好的连接进行操作。完成后,不会释放这个连接,而是让其返回连接池,用于后续 redis 操作!这样避免连续创建和释放,从而提高了性能!

#!/usr/bin/python3

import redis,time   # 导入redis模块,通过python操作redis 也可以直接在redis主机的服务端操作缓存数据库

pool = redis.ConnectionPool(host='localhost', port=6379, password="pwd@321", decode_responses=True)   # host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
r = redis.Redis(connection_pool=pool)
r.set('name', 'phyger-from-python-redis')
print(r['name'])
print(r.get('name'))  # 取出键name对应的值
print(type(r.get('name')))

3.gif

你会发现,在实际使用中直连和使用连接池的效果是一样的,只是在高并发的时候会有明显的区别。

基操实践

对于众多的 Redis 命令,我们在此以 SET 命令为例进行展示。

格式: set(name, value, ex=None, px=None, nx=False, xx=False)

在 redis-py 中 set 命令的参数:

SONIFY.io SONIFY.io

设计和开发音频优先的产品和数据驱动的解决方案

SONIFY.io 83 查看详情 SONIFY.io
参数名 释义
ex <int></int>过期时间(m)
px <int></int>过期时间(ms)
nx <bool></bool>如果为真,则只有 name 不存在时,当前 set 操作才执行
xx <bool></bool>如果为真,则只有 name 存在时,当前 set 操作才执行

ex

我们计划创建一个 kv 并且设置其 ex3,期待 3 秒后此 kv 会变为 None

#!/usr/bin/python3

import redis,time   # 导入redis模块,通过python操作redis 也可以直接在redis主机的服务端操作缓存数据库

pool = redis.ConnectionPool(host='localhost', port=6379, password="pwd@321", decode_responses=True)   # host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
r = redis.Redis(connection_pool=pool)
r.set('name', 'phyger-from-python-redis',ex=3)
print(r['name'])    # 应当有v
time.sleep(3)
print(r.get('name'))  # 应当无v
print(type(r.get('name')))

4.png

nx

由于 px 的单位太短,我们就不做演示,效果和 ex 相同。

我们计划去重复 set 前面已经 set 过的 name,不出意外的话,在 nx 为真时,我们将会 set 失败。但是人如果 set 不存在的 name1,则会成功。

#!/usr/bin/python3

import redis,time   # 导入redis模块,通过python操作redis 也可以直接在redis主机的服务端操作缓存数据库

pool = redis.ConnectionPool(host='localhost', port=6379, password="pwd@321", decode_responses=True)   # host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
r = redis.Redis(connection_pool=pool)
r.set('name', 'phyger-0',nx=3) # set失败
print(r['name'])    # 应当不生效
r.set('name1', 'phyger-1',nx=3) # set成功
print(r.get('name1'))  # 应当生效
print(type(r.get('name')))

5.png

如上,你会发现 nameset 未生效,因为 name 已经存在于数据库中。而 name1set 已经生效,因为 name1 是之前在数据库中不存在的。

xx

我们计划去重复 set 前面已经 set 过的 name,不出意外的话,在 nx 为真时,我们将会 set 成功。但是人如果 set 不存在的 name2,则会失败。

#!/usr/bin/python3

import redis,time   # 导入redis模块,通过python操作redis 也可以直接在redis主机的服务端操作缓存数据库

pool = redis.ConnectionPool(host='localhost', port=6379, password="pwd@321", decode_responses=True)   # host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
r = redis.Redis(connection_pool=pool)
r.set('name', 'phyger-0',xx=3) # set失败
print(r['name'])    # 应当变了
r.set('name2', 'phyger-1',xx=3) # set成功
print(r.get('name2'))  # 应当没有set成功
print(type(r.get('name')))

6.png

以上,就是今天全部的内容,更多信息建议参考 redis 官方文档。

更多编程相关知识,请访问:编程视频!!

以上就是浅析Python中怎么用Redis的详细内容,更多请关注其它相关文章!


# 装好  # 如何提高seo营销推广  # 潍坊大型网站建设制作  # 抖音关键词排名加盟  # 目标网站优化策略论文  # 何网站推广陆云速捷极度  # 橘子代刷网站推广怎么做  # 图书营销推广培训总结  # 便宜的网站建设价格  # 茶叶推广营销方式有哪些  # 新品牌推广营销策略  # Python  # 会有  # 情况下  # 都是  # 起着  # 客户端  # 连接池  # 可以直接  # 不存在  # 服务端  # Redis 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 如何在CSS中使用伪类选择器_hover实现悬停效果  163邮箱在线登录 163邮箱网页版在线入口  windows10怎么开启卓越性能_windows10电源选项代码激活  智慧职教mooc平台登录网址 智慧职教mooc官网直达  个人所得税办理入口 个人所得税综合所得年度汇算入口  秋风萧瑟洪波涌起中的萧瑟指的是什么  《金山词霸》语音翻译方法  126邮箱申请入口官网_126邮箱注册免费登录2025  京东快递物流信息不更新怎么办_物流停滞原因与处理方法  QQ邮箱注册地址 免费获取QQ邮箱账号  Win10运行窗口在哪里打开 Win10调出运行命令框快捷键【技巧】  德邦物流在线查询系统 德邦快递货物运输追踪  在React中正确处理HTML input type="number"的数值类型  Excel宏怎么删除_Excel中删除宏的详细操作流程  qq音乐官方网站入口_qq音乐在线听歌网页版链接  使用VS Code调试Python代码:从入门到精通  iPhone14无法连接蓝牙设备如何解决  顺丰快递收费标准查询_如何查看顺丰最新收费价格  Fedora怎么安装 Fedora Workstation安装步骤  Linux如何开发轻量级数据服务模块_Linux服务化设计  动漫之家观看全集库 动漫之家免费资源网地址  知音漫客官网首页入口_知音漫客热门漫画推荐  《浙里办》电子发票开具方法  PHP odbc_fetch_array 返回值处理:如何正确访问嵌套数组元素  性能与资源监视器快捷打开  济南公交卡手机充值指南  C#解析并修改XML后保存 如何确保格式与编码的正确性  腾讯QQ邮箱官方入口 QQ邮箱网页版登录平台  苹果手机如何清理系统缓存数据 iPhone非越狱清理垃圾文件的技巧【系统优化】  在VS Code中利用AI辅助进行代码迁移  《桃源记2》资源采集攻略  毒蘑菇VOLUMESHADER_BM官网首页登录入口 毒蘑菇VOLUMESHADER_BM官网首页登录入口说明  PSD转AI文件的简单方法  Python csv 模块处理非字符串数据:列表写入 CSV 文件的机制解析  Lar*el 中高效执行多列更新:单次查询实现  iQOO手机信号差网络不稳定怎么办 信号问题原因排查与增强设置【攻略】  餐馆菜篮选购指南  怎样设置开机后自动运行某个程序_Windows启动文件夹与任务计划【自动化】  mysql中如何配置字符集和排序规则_mysql字符集排序配置  《荔枝fm》导出文件教程  PHP与SQL实践:高效实现数据复制与特定列值修改  曝《丝之歌》DLC有望开发!开发商还有神秘新企划  《360浏览器》设置摄像头权限方法  PHP多语言网站的实现:会话管理与翻译函数优化教程  外媒评《燕云十六声》DIY载具新玩法:很像《塞尔达传说王国之泪》!  汽水音乐网页端访问 汽水音乐官方网页直达  qq邮箱怎么注册_QQ邮箱注册步骤与注意事项  b站怎么用微信登录_b站微信登录方法  WPS文字如何进行简繁转换  《随手记》启用语音备注方法 

 2021-11-22

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.