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)

相关推荐

  • Java内存模型指的是什么

    技术Java内存模型指的是什么本篇内容介绍了“Java内存模型指的是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!J

    攻略 2021年11月24日
  • Python中多线程和多处理的分析

    技术Python中多线程和多处理的分析本篇内容主要讲解“Python中多线程和多处理的分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中多线程和多处理的分析”吧

    攻略 2021年11月3日
  • 如何理解Python基础中的for循环语句

    技术如何理解Python基础中的for循环语句如何理解Python基础中的for循环语句,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python for循

    攻略 2021年10月25日
  • Windows激活破解以及office安装破解的示例分析

    技术Windows激活破解以及office安装破解的示例分析Windows激活破解以及office安装破解的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个

    攻略 2021年10月23日
  • jQuery过滤

    技术jQuery过滤 jQuery过滤!DOCTYPE html
    html
    headmeta charset="UTF-8"title15_筛选_过滤/title
    /headbody
    ulliAAAAA

    礼包 2021年11月18日
  • 午饭用英语怎么说,该是吃午饭的时候了用英语怎么说

    技术午饭用英语怎么说,该是吃午饭的时候了用英语怎么说英语是:Its time for lunch.句子解释:time 英[taɪm] 美[taɪm] n. 时间; 次; 时代; 时刻; vt

    生活 2021年10月25日