Python中如何用Redis

技术Python中如何用Redis本篇内容主要讲解“Python中如何用Redis”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中如何用Redis”吧!前面我们都

本文主要讲解“如何在Python中使用Redis”。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“如何在Python中使用Redis”!

Python中如何用Redis

前面我们用了Redis客户端来使用Redis,但是在实际工作中,我们大多是通过代码来使用Redis。因为边肖对Python比较熟悉,今天就让我们学习一下如何使用Python来操作Redis。

环境准备

需要先安装Redis。

安装了Python(建议使用Python3)。

安装了redis的Python库(pip安装Redis)。

00-1010

开始实践

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

小试牛刀

#!/usr/bin/python3

Importredis#导入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'])#第一个:取出键名对应的值。

Print(r.get('name'))# Second:取出键名对应的值。

打印(键入(r . get(' name ')))Python中如何用Redis

Python中如何用Redis

Get of是连接池执行的最后一个命令。

00-1010正常情况下,当需要连接到redis时,会创建一个连接,并基于这个连接执行redis操作,完成后释放操作。正常情况下,这是没有问题的,但是在高并发的情况下,频繁的连接创建和释放会对性能产生很大的影响,所以连接池会发挥作用。

连接池原理:预先创建多个连接,在进行redis操作时,直接获取创建的连接进行操作。完成后,这个连接不会被释放,而是会返回到连接池中进行后续的redis操作!这避免了持续的创建和发布,从而提高了性能!

#!/usr/bin/python3

Importredis,time#导入redis模块,通过在python中操作redis,还可以直接在redis主机的服务器上操作缓存数据库。

池=

 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')))

Python中如何用Redis

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

基操实践

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

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

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

参数名 释义
ex <int>过期时间(m)
px <int>过期时间(ms)
nx <bool>如果为真,则只有 name 不存在时,当前 set 操作才执行
xx <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')))

Python中如何用Redis

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')))

Python中如何用Redis

如上,你会发现 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')))

Python中如何用Redis

到此,相信大家对“Python中如何用Redis”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/121641.html

(1)

相关推荐

  • 怎么分析Div+CSS网站设计的优点

    技术怎么分析Div+CSS网站设计的优点这期内容当中小编将会给大家带来有关怎么分析Div+CSS网站设计的优点,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Div+CSS网站设计的优点

    攻略 2021年11月11日
  • q函数,数学Q

    技术q函数,数学Qlog表示对数。如果a^n = b(a>0,且a≠1),那么数n叫做以a为底b的对数,记做n=log(a)b,【a是下标】其中,a叫做“底数”,b叫做“真数”。一般地,函数y=logax(a>0,且a≠

    生活 2021年10月29日
  • zookeeper怎么远程调用(如何开zookeeper)

    技术如何进行Zookeeper开源客户端框架Curator的简单使用如何进行Zookeeper开源客户端框架Curator的简单使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小

    攻略 2021年12月23日
  • 树莓派怎么控制SG90舵机

    技术树莓派怎么控制SG90舵机今天就跟大家聊聊有关树莓派怎么控制SG90舵机,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。SG90一共三根线,红线接5V电源,棕线

    攻略 2021年11月19日
  • 什么是C++引用

    技术什么是C++引用这篇文章主要介绍“什么是C++引用”,在日常操作中,相信很多人在什么是C++引用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是C++引用”的疑惑有所帮助!接下来,

    攻略 2021年11月1日
  • 混凝土试块强度评定,混凝土试块评定方法标准差怎么算

    技术混凝土试块强度评定,混凝土试块评定方法标准差怎么算评定水泥混凝土的抗压强度,应以标准养生28d 龄期的试件为准。试件为边长150mm 的立方体。试件3 件为1组。水泥混凝土抗压强度的合格标准混凝土试块强度评定:一、试

    生活 2021年10月25日