Redis ialah sistem storan nilai kunci berprestasi tinggi sumber terbuka, biasa digunakan dalam cache, baris gilir mesej, kaunter dan senario lain. Sebagai bahasa skrip yang ringkas dan cekap, Python juga digunakan secara meluas dalam pemprosesan latar belakang Web, analisis data dan perlombongan, pembelajaran mesin, kecerdasan buatan dan bidang lain. Artikel ini akan membincangkan aplikasi Redis dalam Python, termasuk pemasangan Redis, penggunaan modul klien Python Redis dan kes aplikasi tertentu.
1. Pemasangan Redis
$ tar xzf redis-5.0.3.tar.gz
$ cd redis-5.0.3
$ make
$ src. /redis-server
$ src/redis-cli
127.0.0.1:6379> SET mykey "Hello Redis"
OK
127.0. 0.1:6379> GET mykey
"Hello Redis"
2 Penggunaan modul klien Python Redis
Untuk menggunakan Redis dengan mudah, anda boleh menggunakan modul redis-py sebagai perpustakaan klien Redis. Anda boleh menggunakan arahan pip untuk memasang:
$ pip install redis
import redis
rds = redis.Redis(host='localhost', port=6379, db=0)
di mana hos dan port masing-masing ialah alamat dan nombor port pelayan Redis, db mewakili nombor pangkalan data Redis, dan lalai ialah 0.
rds.set('name', 'Alice')
name = rds.get('name')
print(name) # Output: b'Alice '
Antaranya, kaedah set digunakan untuk menetapkan pasangan nilai kunci, dan kaedah get digunakan untuk mendapatkan pasangan nilai kunci. Perlu diingatkan bahawa jenis data yang dikembalikan oleh kaedah get adalah bait dan perlu ditukar kepada rentetan menggunakan kaedah nyahkod.
paip = rds.pipeline()
pipe.set('key1', 'value1')
pipe.set('key2', 'value2')
pipe.set('key3', 'value3')
pipe.execute()
masa import
pubsub = rds.pubsub()
pubsub.subscribe('channel')
rds.publish('channel', 'Hello')
time.sleep(1) # Tunggu 1 saat
msg = pubsub.get_message()
print(msg) # Output: {'type': 'message', 'channel': b'channel ' , 'data': b'Hello'}
Antaranya, kaedah langgan bermaksud melanggan saluran, dan kaedah terbitan bermaksud menerbitkan mesej. Gunakan kaedah get_message untuk mendapatkan mesej.
3. Kes aplikasi khusus
masa import
import redis
Cache kelas:
def __init__(self): self.rds = redis.Redis(host='localhost', port=6379, db=0) def get(self, key): val = self.rds.get(key) if val: return val.decode() return None def set(self, key, val, ttl=60): self.rds.set(key, val, ex=ttl)
cache = Cache()
val = cache.get('key')
jika bukan val:
# 从数据库中查询数据 val = 'value' cache.set('key', val, ttl=60)
print(val)
Kelas Cache merangkum pelaksanaan cache Redis, dan anda boleh menggunakan kaedah get dan set untuk mendapatkan atau menetapkan data cache. Tanya cache sebelum mendapatkan data Jika ia tidak wujud dalam cache, baca data daripada pangkalan data dan cache ia.
masa import
import redis
Kunci kelas:
def __init__(self): self.rds = redis.Redis(host='localhost', port=6379, db=0) self.locked = False def acquire(self, lockname, ttl=60): identifier = str(time.time()) self.locked = self.rds.setnx(lockname, identifier) if self.locked: self.rds.expire(lockname, ttl) return self.locked def release(self, lockname): if self.locked: self.rds.delete(lockname)
kunci = Kunci()
jika lock.acquire('mylock'):
# 处理业务逻辑... lock.release('mylock')
Kelas Lock merangkumi pelaksanaan kunci teragih, dan kaedah perolehan dan lepaskan boleh digunakan untuk memperoleh atau melepaskan kunci. Apabila memperoleh kunci, kembalikan Palsu jika kunci sudah diisi; jika kunci tidak diisi, dapatkan kunci dan tetapkan masa tamat tempoh.
Ringkasnya, Redis digunakan secara meluas dalam Python dan boleh digunakan dalam cache, kunci teragih, baris gilir mesej, kaunter dan senario lain. Pustaka klien Python Redis juga menyediakan API yang ringkas dan mudah digunakan untuk operasi data yang mudah.
Atas ialah kandungan terperinci Aplikasi Redis dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!