Inhaltsverzeichnis
环境准备
开始实践
小试牛刀
直接连接
连接池
基操实践
Umgebungsvorbereitung
Übung beginnen
Probieren Sie es aus
Direkte Verbindung
Verbindungspool
Grundlegende Betriebspraxis
ex
nx
xx
Heim Datenbank Redis Eine kurze Analyse der Verwendung von Redis in Python

Eine kurze Analyse der Verwendung von Redis in Python

Nov 22, 2021 pm 07:22 PM
python redis

Wie verwende ich Redis in Python? Der folgende Artikel wird Ihnen die Verwendung von Redis in Python vorstellen. Ich hoffe, er wird Ihnen hilfreich sein!

Eine kurze Analyse der Verwendung von Redis in Python

Zuvor haben wir den Redis-Client verwendet, um Redis zu verwenden, aber in der tatsächlichen Arbeit verwenden wir ihn in den meisten Fällen über CodeRedis. Da der Editor mit Python vertraut ist, werden wir heute lernen, wie man Python verwendet, um Redis code> zu bedienen. [Verwandte Empfehlungen: <a href="http://www.php.cn/course/list/54.html" target="_blank">Redis-Video-Tutorial</a>]<code>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=&#39;localhost&#39;, port=6379, password="pwd@321", decode_responses=True)   # host是redis主机,password为认证密码,redis默认端口是6379
r.set(&#39;name&#39;, &#39;phyger-from-python-redis&#39;)  # key是"name" value是"phyger-from-python-redis" 将键值对存入redis缓存
print(r[&#39;name&#39;])  # 第一种:取出键name对应的值
print(r.get(&#39;name&#39;))  # 第二种:取出键name对应的值
print(type(r.get(&#39;name&#39;)))
Nach dem Login kopieren

Eine kurze Analyse der Verwendung von Redis in Python

Eine kurze Analyse der Verwendung von Redis in Python

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

连接池

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

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

#!/usr/bin/python3

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

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

Eine kurze Analyse der Verwendung von Redis in Python

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

基操实践

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

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

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

Beispiel: Unser Plan Stellen Sie über Python eine Verbindung zu Redis her. Schreiben Sie dann einen kv und geben Sie schließlich den abgefragten v aus.

Direkte Verbindung

#!/usr/bin/python3

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

pool = redis.ConnectionPool(host=&#39;localhost&#39;, port=6379, password="pwd@321", decode_responses=True)   # host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
r = redis.Redis(connection_pool=pool)
r.set(&#39;name&#39;, &#39;phyger-from-python-redis&#39;,ex=3)
print(r[&#39;name&#39;])    # 应当有v
time.sleep(3)
print(r.get(&#39;name&#39;))  # 应当无v
print(type(r.get(&#39;name&#39;)))
Nach dem Login kopieren
Nach dem Login kopieren
Eine kurze Analyse der Verwendung von Redis in Python
参数名释义
ex<int>过期时间(m)
px<int>过期时间(ms)
nx<bool>如果为真,则只有 name 不存在时,当前 set 操作才执行
xx<bool>

Umgebungsvorbereitung

  • Redis muss zuerst installiert werden.
  • Python ist installiert (Python3 wird empfohlen).
  • Die Python-Bibliothek von Redis ist installiert (pip install redis).

Übung beginnen

Probieren Sie es aus

🎜Eine kurze Analyse der Verwendung von Redis in Python🎜
🎜Der get ist der letzte Befehl, der vom Verbindungspool ausgeführt wird. 🎜

Verbindungspool

🎜Normalerweise wird eine Verbindung erstellt, wenn Sie eine Verbindung zu redis herstellen müssen Verbindung< code>redis-Vorgang, geben Sie ihn frei, nachdem der Vorgang abgeschlossen ist. Unter normalen Umständen ist dies kein Problem, aber wenn die Parallelität hoch ist, hat das häufige Erstellen und Freigeben von Verbindungen einen großen Einfluss auf die Leistung, sodass der Verbindungspool ins Spiel kommt. 🎜🎜Das Prinzip des Verbindungspools: Erstellen Sie im Voraus mehrere Verbindungen, wenn Sie einen redis-Vorgang ausführen. Rufen Sie direkt die bereits erstellten Verbindungen für den Betrieb ab. Nach Abschluss wird die Verbindung nicht freigegeben, sondern für nachfolgende redis-Vorgänge an den Verbindungspool zurückgegeben! Dies vermeidet eine kontinuierliche Erstellung und Veröffentlichung und verbessert so die Leistung! 🎜
#!/usr/bin/python3

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

pool = redis.ConnectionPool(host=&#39;localhost&#39;, port=6379, password="pwd@321", decode_responses=True)   # host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
r = redis.Redis(connection_pool=pool)
r.set(&#39;name&#39;, &#39;phyger-0&#39;,nx=3) # set失败
print(r[&#39;name&#39;])    # 应当不生效
r.set(&#39;name1&#39;, &#39;phyger-1&#39;,nx=3) # set成功
print(r.get(&#39;name1&#39;))  # 应当生效
print(type(r.get(&#39;name&#39;)))
Nach dem Login kopieren
Nach dem Login kopieren
🎜Eine kurze Analyse der Verwendung von Redis in Python🎜< blockquote>🎜Sie werden feststellen, dass bei der tatsächlichen Verwendung die Auswirkungen einer direkten Verbindung und der Verwendung eines Verbindungspools gleich sind, es jedoch offensichtliche Unterschiede bei der hohen Parallelität gibt. 🎜

Grundlegende Betriebspraxis

🎜Für viele Redis-Befehle verwenden wir hier SET Der Befehl wird als Beispiel gezeigt. 🎜🎜Format: set(name, value, ex=None, px=None, nx=False, xx=False)🎜🎜in redis-py-Parametern des Set-Befehls: 🎜🎜< tr>
ParameternameInterpretation
ex🎜<int>Ablaufzeit (m)🎜🎜
px🎜<int> Ablaufzeit (ms)🎜🎜
nx🎜<bool>Wenn true, wird der aktuelle Set-Vorgang nur ausgeführt, wenn der Name nicht existiert🎜🎜
xx🎜<bool>Wenn true, wird die aktuelle Set-Operation nur ausgeführt, wenn der Name vorhanden ist🎜🎜🎜🎜

ex

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

#!/usr/bin/python3

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

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

Eine kurze Analyse der Verwendung von Redis in Python

nx

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

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

#!/usr/bin/python3

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

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

Eine kurze Analyse der Verwendung von Redis in Python

如上,你会发现 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=&#39;localhost&#39;, port=6379, password="pwd@321", decode_responses=True)   # host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
r = redis.Redis(connection_pool=pool)
r.set(&#39;name&#39;, &#39;phyger-0&#39;,xx=3) # set失败
print(r[&#39;name&#39;])    # 应当变了
r.set(&#39;name2&#39;, &#39;phyger-1&#39;,xx=3) # set成功
print(r.get(&#39;name2&#39;))  # 应当没有set成功
print(type(r.get(&#39;name&#39;)))
Nach dem Login kopieren

Eine kurze Analyse der Verwendung von Redis in Python

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

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

Das obige ist der detaillierte Inhalt vonEine kurze Analyse der Verwendung von Redis in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP und Python: Code Beispiele und Vergleich PHP und Python: Code Beispiele und Vergleich Apr 15, 2025 am 12:07 AM

PHP und Python haben ihre eigenen Vor- und Nachteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1.PHP eignet sich für eine schnelle Entwicklung und Wartung großer Webanwendungen. 2. Python dominiert das Gebiet der Datenwissenschaft und des maschinellen Lernens.

Wie ist die GPU -Unterstützung für Pytorch bei CentOS? Wie ist die GPU -Unterstützung für Pytorch bei CentOS? Apr 14, 2025 pm 06:48 PM

Aktivieren Sie die Pytorch -GPU -Beschleunigung am CentOS -System erfordert die Installation von CUDA-, CUDNN- und GPU -Versionen von Pytorch. Die folgenden Schritte führen Sie durch den Prozess: Cuda und Cudnn Installation Bestimmen Sie die CUDA-Version Kompatibilität: Verwenden Sie den Befehl nvidia-smi, um die von Ihrer NVIDIA-Grafikkarte unterstützte CUDA-Version anzuzeigen. Beispielsweise kann Ihre MX450 -Grafikkarte CUDA11.1 oder höher unterstützen. Download und installieren Sie Cudatoolkit: Besuchen Sie die offizielle Website von Nvidiacudatoolkit und laden Sie die entsprechende Version gemäß der höchsten CUDA -Version herunter und installieren Sie sie, die von Ihrer Grafikkarte unterstützt wird. Installieren Sie die Cudnn -Bibliothek:

Detaillierte Erklärung des Docker -Prinzips Detaillierte Erklärung des Docker -Prinzips Apr 14, 2025 pm 11:57 PM

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

Python gegen JavaScript: Community, Bibliotheken und Ressourcen Python gegen JavaScript: Community, Bibliotheken und Ressourcen Apr 15, 2025 am 12:16 AM

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Redis: Klassifizierung des Datenbankansatzes Redis: Klassifizierung des Datenbankansatzes Apr 15, 2025 am 12:06 AM

Die Datenbankmethoden von Redis umfassen In-Memory-Datenbanken und Schlüsselwertspeicher. 1) Redis speichert Daten im Speicher und liest und schreibt schnell. 2) Es wird Schlüsselwertpaare verwendet, um Daten zu speichern, unterstützt komplexe Datenstrukturen wie Listen, Sammlungen, Hash-Tabellen und geordnete Sammlungen, die für Caches und NoSQL-Datenbanken geeignet sind.

So installieren Sie Nginx in CentOS So installieren Sie Nginx in CentOS Apr 14, 2025 pm 08:06 PM

Die Installation von CentOS-Installationen erfordert die folgenden Schritte: Installieren von Abhängigkeiten wie Entwicklungstools, PCRE-Devel und OpenSSL-Devel. Laden Sie das Nginx -Quellcode -Paket herunter, entpacken Sie es, kompilieren Sie es und installieren Sie es und geben Sie den Installationspfad als/usr/local/nginx an. Erstellen Sie NGINX -Benutzer und Benutzergruppen und setzen Sie Berechtigungen. Ändern Sie die Konfigurationsdatei nginx.conf und konfigurieren Sie den Hörport und den Domänennamen/die IP -Adresse. Starten Sie den Nginx -Dienst. Häufige Fehler müssen beachtet werden, z. B. Abhängigkeitsprobleme, Portkonflikte und Konfigurationsdateifehler. Die Leistungsoptimierung muss entsprechend der spezifischen Situation angepasst werden, z. B. das Einschalten des Cache und die Anpassung der Anzahl der Arbeitsprozesse.

Wie man eine verteilte Schulung von Pytorch auf CentOS betreibt Wie man eine verteilte Schulung von Pytorch auf CentOS betreibt Apr 14, 2025 pm 06:36 PM

Pytorch Distributed Training on CentOS -System erfordert die folgenden Schritte: Pytorch -Installation: Die Prämisse ist, dass Python und PIP im CentOS -System installiert sind. Nehmen Sie abhängig von Ihrer CUDA -Version den entsprechenden Installationsbefehl von der offiziellen Pytorch -Website ab. Für CPU-Schulungen können Sie den folgenden Befehl verwenden: PipinstallTorChTorChVisionTorChaudio Wenn Sie GPU-Unterstützung benötigen, stellen Sie sicher, dass die entsprechende Version von CUDA und CUDNN installiert ist und die entsprechende Pytorch-Version für die Installation verwenden. Konfiguration der verteilten Umgebung: Verteiltes Training erfordert in der Regel mehrere Maschinen oder mehrere Maschinen-Mehrfach-GPUs. Ort

So konfigurieren Sie langsame Abfragebogin in CentOS Redis So konfigurieren Sie langsame Abfragebogin in CentOS Redis Apr 14, 2025 pm 04:54 PM

Aktivieren Sie Redis langsame Abfrageprotokolle im CentOS -System, um die Leistungsdiagnoseeffizienz zu verbessern. In den folgenden Schritten führen Sie die Konfiguration durch: Schritt 1: Suchen und bearbeiten Sie die Redis -Konfigurationsdatei zuerst und suchen Sie die Redis -Konfigurationsdatei, die sich normalerweise in /etc/redis/redis.conf befindet. Öffnen Sie die Konfigurationsdatei mit dem folgenden Befehl: Sudovi/etc/redis/redis.conf Schritt 2: Passen Sie die Langsame-Abfrage-Protokollparameter in der Konfigurationsdatei an, suchen Sie die folgenden Parameter: #Slow Query-Schwellenwert (MS) Slow-Log-Slow-Than10000 #Maximum der Einträge für langsame Query-Log-Logog-Logog-Len-Len-Len

See all articles