[PYTHON] Ich habe versucht, Firebase für Djangos Cache-Server zu verwenden

Hintergrund der Verwendung

Das von der Firma betriebene Produkt verwendet AWS Redis als Cache-Server, ist jedoch für meinen eigenen Gebrauch teuer und kann nur über die VPC aufgerufen werden (obwohl dies über einen Proxy erfolgen kann). Es ist ein Ärger, also habe ich nach etwas anderem gesucht, das als Cache-Server verwendet werden kann.

Einfache Caching-Methode

Speichern Sie es

Ich denke, der einfachste Weg ist es, es in den lokalen Speicher zu stellen, was gut zum Testen ist, aber oft nicht genug für die Produktion.

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
        'LOCATION': 'default',
        'TIMEOUT': 24 * 60 * 60
    }

DB anlegen

Erstellen Sie eine Tabelle in der Datenbank, erstellen Sie darin Cache-Daten und lesen Sie sie. Natürlich wird die Belastung der Datenbank zunehmen und die Größe der Datenbank wird zunehmen.

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'cache_table',
        'TIMEOUT': 24 * 60 * 60
    }
}

Es ist wichtig, einen Tisch zu machen.

python manage.py createcachetable

Überlegen Sie, was Sie mit Firebase tun können

Ich dachte, dass AWS nicht verwendet werden kann und dass Speicher und Datenbank schwierig sind, was ein Firebase-Dienst ist, den ich heutzutage oft benutze. Wenn ich mir Firebase anschaue, frage ich mich, ob es Leute gibt, die Pakete machen. https://github.com/christippett/django-firebase-cache

Also habe ich mich für dieses Paket entschieden.

Einführung

Es ist etwas komplizierter zu bedienen als das oben beschriebene.

Paketinstallation.

pip install django-firebase-cache

Set in CACHES.

CACHES = {
    'default': {
        'BACKEND': 'django_firebase_cache.FirestoreCache',
        'LOCATION': 'collection_name',
        'TIMEOUT': 24 * 60 * 60
    }
}

Legen Sie die Firebase-Anmeldeinformationsdatei fest und übergeben Sie sie über den Pfad. Ich bin hier etwas verwirrt, aber ich muss den Pfad wie folgt an die Umgebungsvariable "GOOGLE_APPLICATION_CREDENTIALS" übergeben. Die Dokumentation ist überhaupt nicht vollständig ...

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = './client_credentials.json'

Damit sind die Einstellungen abgeschlossen. Wenn Sie es jetzt tatsächlich verschieben, können Sie sehen, dass die Daten im FireBase FireStore gespeichert sind.

Eine Falle von hier ...

Obwohl bis zu diesem Zeitpunkt eine Einlösung möglich geworden ist, wurde die Obergrenze des kostenlosen Kontingents unerwartet bald erreicht. .. In diesem Fall wird natürlich ein Fehler zurückgegeben, aber die Site war mehrere Stunden lang ohne Verarbeitung tot, um den Fehler zu vermeiden. ..

Lassen Sie uns dafür bezahlen oder den Fehler behandeln.

Recommended Posts

Ich habe versucht, Firebase für Djangos Cache-Server zu verwenden
Ich habe versucht, parametrisiert zu verwenden
Ich habe versucht, Argparse zu verwenden
Ich habe versucht, Mimesis zu verwenden
Ich habe versucht, anytree zu verwenden
vprof - Ich habe versucht, den Profiler für Python zu verwenden
Ich habe versucht, aiomysql zu verwenden
Ich habe versucht, Summpy zu verwenden
Ich habe versucht, Coturn zu verwenden
Ich habe versucht, Pipenv zu verwenden
Ich habe versucht, Matplotlib zu verwenden
Ich habe versucht, "Anvil" zu verwenden.
Ich habe versucht, Hubot zu verwenden
Ich habe versucht, ESPCN zu verwenden
Ich habe versucht, openpyxl zu verwenden
Ich habe versucht, Ipython zu verwenden
Ich habe versucht, PyCaret zu verwenden
Ich habe versucht, Cron zu verwenden
Ich habe versucht, ngrok zu verwenden
Ich habe versucht, Jupyter zu verwenden
Ich habe versucht, doctest zu verwenden
Ich habe versucht, Folium zu verwenden
Ich habe versucht, jinja2 zu verwenden
Ich habe versucht, Folium zu verwenden
Ich habe versucht, das Zeitfenster zu verwenden
[Python] Ich habe versucht, einen lokalen Server mit flask auszuführen
[Ich habe versucht, Pythonista 3 zu verwenden] Einführung
Ich habe versucht, easydict (Memo) zu verwenden.
Ich habe versucht, das Gesicht mit Face ++ zu erkennen
Ich habe versucht, RandomForest zu verwenden
Ich habe versucht, BigQuery ML zu verwenden
Ich habe versucht, Amazon Glacier zu verwenden
Ich habe versucht, Git Inspector zu verwenden
Ich habe versucht, Magenta / TensorFlow zu verwenden
Ich habe versucht, AWS Chalice zu verwenden
Ich habe versucht, Slack Emojinator zu verwenden
Ich habe versucht, Djangos Server mit VScode anstelle von Pycharm zu starten
Ich habe versucht, Tensorboard zu verwenden, ein Visualisierungstool für maschinelles Lernen
Verschiedene Hinweise zur Verwendung von Python für Projekte
Ich habe versucht, das Zugriffsprotokoll mit Node.js auf dem Server auszugeben
[Für Anfänger] Ich habe versucht, die Tensorflow-Objekterkennungs-API zu verwenden
Ich habe versucht, Rotrics Dex Arm # 2 zu verwenden
Ich habe versucht, Rotrics Dex Arm zu verwenden
Ich habe versucht, GrabCut von OpenCV zu verwenden
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
Ich habe versucht, mit dem Server-Client über tmux zu kommunizieren
Ich habe versucht, mit PyBrain verstärkt zu lernen
Ich habe versucht, mit Theano tief zu lernen
Ich habe irgendwie versucht, ein Jupyter-Notebook zu verwenden
[Kaggle] Ich habe versucht, mit unausgeglichenem Lernen zu unterabtasten
Ich habe versucht, mit OpenPose eine Schildkrötenwelle zu schießen
Ich habe versucht, die checkio-API zu verwenden
Ich habe versucht, asynchrone Verarbeitung mit Asyncio
Ich habe versucht, Kwant zu verwenden, ein Python-Modul für die Quantentransportberechnung
Ich habe versucht, GLM (Generalized Linear Model) für Aktienkursdaten zu verwenden
Ich habe versucht, Amazon SQS mit Django-Sellerie zu verwenden