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)

相关推荐

  • 安装完mysql怎么使用(mysql怎么在第一步安装)

    技术mysql怎么样进行安装这篇文章主要为大家展示了“mysql怎么样进行安装”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql怎么样进行安装”这篇文章吧。一、下载安装

    攻略 2021年12月20日
  • 一起刷LeetCode

    技术一起刷LeetCode 一起刷LeetCode事件背景
    寒假在家没事,准备重新开始每日算法训练。
    在写题解的过程中发现,或许应该把它们统一记录下来。
    如何刷算法
    刷算法的目的有三
    1. 练习某一门语

    礼包 2021年12月23日
  • 香港服务器:为什么香港站群推荐固定IP段

    技术香港服务器:为什么香港站群推荐固定IP段现在很多用户做SEO多少都会选择站群服务器来搭建业务,尤其是香港站群服务器来搭建业务基本都是固定IP的多IP服务器,为什么搭建站群都要选择固定IP的机器,对于SEO有那些影响,

    礼包 2021年10月19日
  • java项目会用到main方法吗(java main方法可以有几个)

    技术Java main方法面试题有哪些本篇内容主要讲解“Java main方法面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java main方法面试题有哪些”吧

    攻略 2021年12月22日
  • 归并排序和逆序对数量

    技术归并排序和逆序对数量 归并排序和逆序对数量归并排序
    #includeiostreamusing namespace std;
    const int N = 100010;
    int q[N];
    int

    礼包 2021年11月5日
  • 归并算法

    技术归并算法 归并算法归并算法采用了分而治之的思想,具体的内容懂的都懂,不懂的也不需要明白,看代码就完事了。
    public class guibing { public static int[]

    礼包 2021年12月9日