Python で Redis を使用する方法の簡単な分析

青灯夜游
リリース: 2021-11-22 19:22:54
転載
2611 人が閲覧しました

Python で Redis を使用するにはどうすればよいですか?次の記事ではPythonでRedisを使う方法を紹介しますので、ぜひ参考にしてください。

Python で Redis を使用する方法の簡単な分析

以前は Redis を使用するために Redis クライアントを使用していましたが、実際の作業では、ほとんどの場合、以下はすべて # を使用していますコードによる ##Redis エディターは Python に精通しているため、今日は Python の使用方法を学習します。##Redis。 [関連する推奨事項: Redis ビデオ チュートリアル ]環境の準備

    Redis
  • まず、Redis をインストールする必要があります。
  • Python
  • がインストールされています (Python3 を推奨します)。
  • Redis
  • Python ライブラリがインストールされます (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')))
ログイン後にコピー

Python で Redis を使用する方法の簡単な分析

Python で Redis を使用する方法の簡単な分析

##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')))
ログイン後にコピー

Python で Redis を使用する方法の簡単な分析実際に使用すると、直接接続と接続プールの使用の効果は同じであることがわかりますが、同時実行時には明らかな違いがあります。高い。 。

基本操作の実践

多くの

Redis

コマンドについて、例として

SET コマンドを取り上げます。 形式:

set(名前, 値, ex=なし, px=なし, nx=False, xx=False)# #redis-py の set コマンドのパラメーター:

パラメーター名解釈ex##true の場合、現在の設定操作は、name が存在する場合にのみ実行されます。 #

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 を使用する方法の簡単な分析

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

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

以上がPython で Redis を使用する方法の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!
有効期限 (分)px
有効期限 (ms)nx
true の場合、名前のみが存在しません #xx