Le produit exploité par la société utilise AWS Redis comme serveur de cache, mais il est coûteux pour mon propre usage et n'est accessible que depuis le VPC (bien que cela puisse être fait par proxy). C'est un problème, j'ai donc cherché quelque chose d'autre qui pourrait être utilisé comme serveur de cache.
Je pense que le moyen le plus simple est de le mettre en mémoire locale, ce qui est bien pour les tests, mais souvent pas assez pour la production.
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': 'default',
'TIMEOUT': 24 * 60 * 60
}
Créez une table dans la base de données, créez-y des données de cache et allez la lire. Naturellement, la charge sur la base de données augmentera et la taille de la base de données augmentera.
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'cache_table',
'TIMEOUT': 24 * 60 * 60
}
}
Il est essentiel de faire une table.
python manage.py createcachetable
Je pensais qu'AWS ne pouvait pas être utilisé et que la mémoire et la base de données seraient difficiles, ce qui était un service Firebase que j'utilise souvent ces jours-ci. En regardant Firebase, je me demande s'il y a des gens qui créent des packages. https://github.com/christippett/django-firebase-cache
J'ai donc décidé d'utiliser ce package.
C'est un peu plus compliqué à utiliser que le simple ci-dessus.
Installation du package.
pip install django-firebase-cache
Situé dans CACHES.
CACHES = {
'default': {
'BACKEND': 'django_firebase_cache.FirestoreCache',
'LOCATION': 'collection_name',
'TIMEOUT': 24 * 60 * 60
}
}
Définissez le fichier d'informations d'identification Firebase et transmettez-le via le chemin.
J'étais un peu confus ici, mais je dois passer le chemin vers la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS
comme suit. La documentation n'est pas du tout complète ...
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = './client_credentials.json'
Ceci termine les réglages. Maintenant, lorsque vous le déplacez réellement, vous pouvez voir que les données sont stockées dans FireBase FireStore.
Bien que l'encaissement soit devenu possible jusqu'à présent, la limite supérieure du quota gratuit a été atteinte de manière inattendue bientôt. .. Dans ce cas, bien sûr, une erreur est renvoyée, mais le site est mort depuis plusieurs heures sans aucun traitement pour éviter l'erreur. ..
Payons-le ou gérons l'erreur.
Recommended Posts