Rumah > pangkalan data > Redis > teks badan

Analisis ringkas tentang cara menggunakan Redis dalam Python

青灯夜游
Lepaskan: 2021-11-22 19:22:54
ke hadapan
2591 orang telah melayarinya

Bagaimana untuk menggunakan Redis dalam Python? Artikel berikut akan memperkenalkan kepada anda cara menggunakan Redis dalam Python Saya harap ia akan membantu anda!

Analisis ringkas tentang cara menggunakan Redis dalam Python

Sebelum ini kami menggunakan Redis klien untuk menggunakan Redis, tetapi dalam kerja sebenar, kami menggunakan kod dalam kebanyakan kesRedis, kerana editor sudah biasa dengan Python, jadi mari belajar cara menggunakan Python untuk mengendalikan Redis bersama hari ini. [Cadangan berkaitan: Tutorial video Redis]

Persediaan alam sekitar

  • Redis Mula-mula anda perlu memasangnya.
  • Python dipasang (Python3 disyorkan). Pustaka
  • RedisPython dipasang (pip install redis).

Mula berlatih

Cuba kemahiran anda sedikit

Contoh: Kami merancang untuk menyambung ke Python melalui Redis. Kemudian tulis kv, dan akhirnya cetak v yang ditanya.

Sambungan terus

#!/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')))
Salin selepas log masuk

Analisis ringkas tentang cara menggunakan Redis dalam Python

Analisis ringkas tentang cara menggunakan Redis dalam Python

di mana get ialah yang terakhir dilaksanakan dalam sambungan Pesanan kolam.

Kolam sambungan

Biasanya, apabila anda perlu menyambung ke redis, sambungan akan dibuat dan operasi redis akan dilakukan berdasarkan sambungan ini dan ia akan dikeluarkan selepas operasi selesai. Dalam keadaan biasa, ini tiada masalah, tetapi apabila jumlah konkurensi adalah tinggi, penciptaan dan pelepasan sambungan yang kerap akan memberi kesan yang tinggi pada prestasi, jadi kumpulan sambungan mula dimainkan.

Prinsip kumpulan sambungan: buat berbilang sambungan terlebih dahulu, dan apabila melakukan operasi redis, dapatkan terus sambungan yang telah dibuat untuk operasi. Selepas selesai, sambungan tidak akan dilepaskan, tetapi dikembalikan ke kumpulan sambungan untuk operasi redis berikutnya! Ini mengelakkan penciptaan dan pelepasan berterusan, sekali gus meningkatkan prestasi!

#!/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')))
Salin selepas log masuk

Analisis ringkas tentang cara menggunakan Redis dalam Python

Anda akan mendapati bahawa dalam penggunaan sebenar, kesan sambungan terus dan menggunakan kumpulan sambungan adalah sama, tetapi ia akan menjadi jelas apabila konkurensi adalah tinggi.

Amalan Operasi Asas

Untuk banyak Redis perintah, kami mengambil perintah SET sebagai contoh untuk ditunjukkan di sini.

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

Parameter arahan set dalam redis-py:

参数名释义
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=&#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;)))
Salin selepas log masuk

Analisis ringkas tentang cara menggunakan Redis dalam 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;)))
Salin selepas log masuk

Analisis ringkas tentang cara menggunakan Redis dalam 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;)))
Salin selepas log masuk

Analisis ringkas tentang cara menggunakan Redis dalam Python

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

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

Atas ialah kandungan terperinci Analisis ringkas tentang cara menggunakan Redis dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!