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')))
##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')))
実際に使用すると、直接接続と接続プールの使用の効果は同じであることがわかりますが、同時実行時には明らかな違いがあります。高い。 。
基本操作の実践
多くの
Redis
コマンドについて、例として
SET コマンドを取り上げます。
形式:
set(名前, 値, ex=なし, px=なし, nx=False, xx=False)# #redis-py の set コマンドのパラメーター:
パラメーター名
解釈
|
|
ex
有効期限 (分) |
px |
有効期限 (ms) |
nx |
true の場合、名前のみが存在しません |
#xx | ##
true の場合、現在の設定操作は、name が存在する場合にのみ実行されます。 #ex
我们计划创建一个 kv
并且设置其 ex
为 3
,期待 3
秒后此 k
的 v
会变为 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')))
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')))
如上,你会发现 name
的 set
未生效,因为 name
已经存在于数据库中。而 name1
的 set
已经生效,因为 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')))
以上,就是今天全部的内容,更多信息建议参考 redis
官方文档。
更多编程相关知识,请访问:编程视频!!
以上がPython で Redis を使用する方法の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。