Pengembangan Skrip / Objek Konektor DFF.CONN / Redis
Objek operasi Konektor Redis terutama menyediakan metode operasi Redis.
Parameter DFF.CONN(...) adalah sebagai berikut:
| Parameter | Tipe | Wajib / Nilai default | Deskripsi |
|---|---|---|---|
connector_id |
str | Wajib | ID Konektor |
database |
str | None |
Menimpa nomor database pada konfigurasi Konektor |
client_name |
str | None |
Mengatur nama klien untuk koneksi ini |
Redis Cluster tidak mendukung pemilihan database logis, oleh karena itu koneksi cluster akan mengabaikan database.
Langganan Pesan
Untuk informasi tentang langganan pesan di Konektor, lihat Pengembangan Skrip / Langganan Konektor
.query(...)
Panggil langsung execute_command(...) dari Redis untuk mengeksekusi perintah, parameter sebagai berikut:
| Parameter | Tipe | Wajib / Nilai default | Deskripsi |
|---|---|---|---|
command |
str | Wajib | Perintah Redis |
*args |
- | - | Parameter perintah Redis |
**kwargs |
- | - | Parameter yang diteruskan ke redis-py |
| Contoh | |
|---|---|
1 2 3 | |
.query(...) tidak mengonversi nilai pengembalian redis-py, hasil string biasanya berupa bytes. Dalam praktiknya, Anda dapat mengonversinya sesuai format data:
| Python | |
|---|---|
1 2 3 4 5 6 7 8 9 10 | |
.run(...)
Panggil metode klien sesuai nama metode redis-py, dengan tanda tangan .run(command, *args, **kwargs). Contoh:
| Contoh | |
|---|---|
1 | |
command adalah nama metode redis-py yang peka huruf besar/kecil, biasanya ditulis dalam huruf kecil. Nilai pengembaliannya sama dengan metode redis-py yang sesuai.
Metode Praktis Umum
Konektor menyediakan metode praktis berikut. Metode pembacaan akan mendekode bytes menjadi string UTF-8 secara rekursif dalam implementasinya, sehingga mungkin berbeda dengan nilai pengembalian asli .query(...).
Database dan Kunci
| Metode | Deskripsi |
|---|---|
.ping() |
Memeriksa koneksi |
.info() |
Mendapatkan informasi Redis |
.dbsize() |
Mendapatkan jumlah kunci database saat ini |
.type(key) |
Mendapatkan tipe kunci; mengembalikan None jika kunci tidak ada |
.memory_usage(key, samples=0) |
Mendapatkan memori yang digunakan kunci |
.keys(pattern='*', limit=None) |
Menggunakan SCAN untuk mendapatkan kunci yang cocok, dapat membatasi jumlah hasil |
.exists(key) |
Memeriksa apakah kunci ada, mengembalikan bool |
.expire(key, expires) |
Mengatur waktu kedaluwarsa dalam detik |
.expireat(key, timestamp) |
Mengatur waktu kedaluwarsa absolut |
.ttl(key) / .pttl(key) |
Mendapatkan sisa waktu dalam hitungan detik / milidetik |
.rename(key, new_key) |
Mengganti nama kunci |
.renamenx(key, new_key) |
Hanya mengganti nama jika kunci baru tidak ada |
.delete(keys) |
Menghapus satu kunci atau daftar kunci, mengembalikan jumlah yang dihapus |
String dan Hash
| Metode | Deskripsi |
|---|---|
.set(key, value, expires=None, not_exists=False, exists=False, get_old_value=False) |
Mengatur nilai, dan dapat mengatur waktu kedaluwarsa serta opsi NX, XX, GET |
.mset(key_values) |
Mengatur banyak pasangan kunci-nilai dari kamus |
.get(key) |
Mendapatkan dan mendekode satu nilai |
.mget(keys) |
Mendapatkan banyak nilai, mengembalikan {key: value} |
.getset(key, value) |
Mengatur nilai baru dan mengembalikan nilai lama |
.incr(key) / .incrby(key, step=1) / .incrbyfloat(key, step=1) |
Menaikkan nilai numerik |
.hkeys(key, pattern='*', with_values=False) |
Menggunakan HSCAN untuk mendapatkan field; dapat sekaligus mengembalikan nilai |
.hset(key, field=None, value=None, field_values=None) |
Mengatur satu field atau pemetaan field |
.hmset(key, field_values) |
Mengatur banyak field |
.hsetnx(key, field, value) |
Hanya mengatur jika field tidak ada |
.hget(key, field) / .hgetall(key) |
Mendapatkan dan mendekode nilai field |
.hmget(key, fields) |
Mendapatkan banyak field, mengembalikan {field: value} |
.hstrlen(key, field) / .hstrlenall(key) |
Mendapatkan panjang byte dari satu atau semua nilai field |
.hincr(key, field) / .hincrby(key, field, step=1) / .hincrbyfloat(key, field, step=1) |
Menaikkan nilai numerik field |
.hdel(key, field) |
Menghapus satu field atau daftar field |
List, Set, dan Sorted Set
| Metode | Deskripsi |
|---|---|
.lpush(key, value) / .rpush(key, value) |
Mendorong satu nilai atau daftar nilai dari kiri / kanan |
.lpop(key, count=None) / .rpop(key, count=None) |
Mengeluarkan satu atau lebih nilai dari kiri / kanan |
.blpop(key, timeout=0) / .brpop(key, timeout=0) |
Pop memblokir |
.rpoplpush(key, dest_key=None) |
Mengeluarkan lalu mendorong ke list lain |
.brpoplpush(key, dest_key=None, timeout=0) |
Pop dan push dengan pemblokiran |
.llen(key) / .lrange(key, start=0, stop=-1) |
Mendapatkan panjang / rentang list |
.ltrim(key, start, stop) |
Memotong list |
.push(...) / .pop(...) / .bpop(...) |
Alias dari .lpush(...) / .rpop(...) / .brpop(...) |
.sadd(key, member) / .srem(key, member) |
Menambahkan / menghapus satu anggota atau daftar anggota |
.scard(key) / .smembers(key) / .sismember(key, member) |
Mendapatkan jumlah set, anggota, atau memeriksa keanggotaan |
.zadd(key, member_scores) / .zrem(key, member) |
Menambahkan / menghapus anggota sorted set |
.zcard(key) |
Mendapatkan jumlah anggota sorted set |
.zrange(key, start=0, stop=-1, with_scores=False) |
Mendapatkan anggota berdasarkan posisi |
.zrangebyscore(key, min_score='-inf', max_score='+inf', with_scores=False) |
Mendapatkan anggota berdasarkan skor |
.publish(...)
Menerbitkan pesan ke kanal Redis, mengembalikan jumlah pelanggan yang menerima pesan. .pub(...) adalah aliasnya.
| Contoh | |
|---|---|
1 | |
Metode Ekstensi
| Metode | Deskripsi |
|---|---|
.eval(lua_script, key_count, *args) |
Menjalankan Skrip Lua dan mendekode nilai kembalian |
.push_limit(key, value, limit) |
Mendorong dari kiri lalu membatasi list ke panjang yang ditentukan |
.get_pattern(pattern) |
Mendapatkan pasangan kunci-nilai yang cocok, mengembalikan {key: value} |
.delete_pattern(pattern) |
Menghapus semua kunci yang cocok |
.hget_pattern(key, pattern) |
Mendapatkan field dan nilai hash yang cocok |
.lock(lock_key, lock_value, max_lock_time) |
Mendapatkan lock menggunakan SET EX NX |
.extend_lock_time(lock_key, lock_value, max_lock_time) |
Memverifikasi pemegang lock lalu memperpanjang waktu kedaluwarsa |
.unlock(lock_key, lock_value) |
Hanya melepaskan lock jika nilai lock cocok |