Rumah > pangkalan data > Redis > teks badan

Cara menggunakan django redis

王林
Lepaskan: 2023-06-03 14:53:13
ke hadapan
1248 orang telah melayarinya

1. Penerangan

Sebagai pangkalan data cache, redis memainkan peranan yang hebat dalam semua aspek. Jika anda menggunakan Django, terdapat perpustakaan redis yang direka khas untuk Django, iaitu django-redis

2. Pasang

pip install django-redis
Salin selepas log masuk

3. Konfigurasikan

3.1 Konfigurasi redis

Buka fail konfigurasi Django, seperti setting.py, dan tetapkan CACHES dalam ia Item

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}
Salin selepas log masuk

Maklumat sambungan redis berbilang boleh dikonfigurasikan dalam satu CACHES Setiap satu mempunyai alias sendiri (alias" di atas ialah alias Kemudian anda boleh menyambung ke pangkalan data redis yang berbeza

LOKASI ialah maklumat sambungan, termasuk kata laluan pengguna port IP, dsb. Jika kata laluan pengguna tidak diperlukan, anda boleh meninggalkannya django-redis menyokong tiga protokol sambungan, seperti berikut

协议说明举例
redis://普通的TCP套接字连接redis://[[username]:[password]]@localhost:6379/0
redissSSL方式的TCP套接字连接rediss://[[username]:[password]]@localhost:6379/0
rediss://Unix域套接字连接unix://[[username]:[password]]@/path/to/socket.sock?db=0

3.2 Menggunakan sesi Penyimpanan redis

Sesi lalai Django disimpan dalam pangkalan data sql, tetapi kita semua tahu bahawa data biasa akan disimpan pada cakera keras, yang tidak begitu pantas untuk disimpan dalam redis, cuma Anda hanya perlu mengkonfigurasinya dalam fail konfigurasi

SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"
Salin selepas log masuk

3.3 Tetapan tamat masa sambungan Redis

Bilangan saat tamat masa sambungan boleh ditentukan dalam item konfigurasi . SOCKET_CONNECT_TIMEOUT menunjukkan masa tamat untuk menyambung ke redis, dan SOCKET_TIMEOUT menunjukkan penggunaan Masa tamat untuk operasi baca dan tulis semula

CACHES = {
    "default": {
        # ...
        "OPTIONS": {
            "SOCKET_CONNECT_TIMEOUT": 5,  # 连接redis超时时间,单位为秒
            "SOCKET_TIMEOUT": 5,  # redis读写操作超时时间,单位为秒
        }
    }
}
Salin selepas log masuk

4.1 Gunakan redis

Jika anda ingin menggunakan redis lalai, tetapkannya dalam fail konfigurasi Redis dengan alias "lalai" boleh merujuk kepada cache dalam django.core.cache

from django.core.cache import cache

cache.set("name", "冰冷的希望", timeout=None)
print(cache.get("name"))
Salin selepas log masuk

4.2 Gunakan redis yang ditentukan (redis asli)

Apabila anda menulis berbilang sambungan redis, anda boleh menentukan redis yang hendak digunakan melalui alias

from django_redis import get_redis_connection

redis_conn = get_redis_connection("chain_info")
redis_conn.set("name", "icy_hope")
print(redis_conn.get("name"))
Salin selepas log masuk

Sila ambil perhatian bahawa klien yang diperoleh melalui get_redis_connection() ialah klien Redis asli semua arahan redis asli, ia mengembalikan Data adalah jenis bait, anda perlu menyahkodnya sendiri

5 Kolam sambungan

Kelebihan menggunakan kolam sambungan ialah anda tidak mempunyai untuk mengurus objek sambungan. Ia akan membuat beberapa objek sambungan secara automatik dan menggunakannya semula sebanyak mungkin, jadi secara relatifnya, prestasi akan menjadi lebih baik

5.1 Mengkonfigurasi kumpulan sambungan

Untuk menggunakan sambungan pool, anda mesti terlebih dahulu menulis bilangan maksimum sambungan dalam kolam sambungan dalam fail konfigurasi Django

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        ...
        "OPTIONS": {
            "CONNECTION_POOL_KWARGS": {"max_connections": 100}
        }
    }
}
Salin selepas log masuk

5.2 Menggunakan kolam sambungan

Kami boleh menentukan redis yang hendak digunakan melalui alias sambungan, dan kemudian laksanakan arahan seperti biasa. Kami tidak perlu mengambil berat tentang kejadian sambungan yang dibuatnya, tetapi anda boleh melihat ciptaan semasa melalui atribut _created_connections bagi connection_pool Berapa banyak tika sambungan terdapat

from django_redis import get_redis_connection

redis_conn = get_redis_connection("default")
redis_conn.set("name", "冰冷的希望")
print(redis_conn.get("name"))

# 查看目前已创建的连接数量
connection_pool = redis_conn.connection_pool
print(connection_pool._created_connections)
Salin selepas log masuk

5.3 Kumpulan sambungan tersuai

Kelas sambungan lalai Django-redis ialah DefaultClient Jika anda mempunyai keperluan penyesuaian yang lebih tinggi, anda boleh membuat kelas baharu anda sendiri

from redis.connection import ConnectionPool

class MyPool(ConnectionPool):
    pass
Salin selepas log masuk

Selepas mempunyai kelas ini, anda perlu. untuk menentukannya dalam fail konfigurasi Django

"OPTIONS": {
    "CONNECTION_POOL_CLASS": "XXX.XXX.MyPool",
}
Salin selepas log masuk

Atas ialah kandungan terperinci Cara menggunakan django redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
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