Rumah > Artikel > pangkalan data > Analisis ringkas tentang cara menggunakan Redis dalam Python
Bagaimana untuk menggunakan Redis dalam Python? Artikel berikut akan memperkenalkan kepada anda cara menggunakan Redis dalam Python Saya harap ia akan membantu anda!
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]
Redis
Mula-mula anda perlu memasangnya. Python
dipasang (Python3
disyorkan). Pustaka Redis
Python
dipasang (pip install redis
). Contoh: Kami merancang untuk menyambung ke Python
melalui Redis
. Kemudian tulis kv
, dan akhirnya cetak v
yang ditanya.
#!/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')))
di mana
get
ialah yang terakhir dilaksanakan dalam sambungan Pesanan kolam.
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')))
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.
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></int> 过期时间(m) |
px |
<int></int> 过期时间(ms) |
nx |
<bool></bool> 如果为真,则只有 name 不存在时,当前 set 操作才执行 |
xx |
<bool></bool> 如果为真,则只有 name 存在时,当前 set 操作才执行 |
我们计划创建一个 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')))
由于 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
是之前在数据库中不存在的。
我们计划去重复 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
官方文档。
更多编程相关知识,请访问:编程视频!!
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!