


Comment se cacher en utilisant Redis dans les applications Django
Ce tutoriel montre comment tirer parti de la mise en cache Redis pour augmenter les performances des applications Python, en particulier dans un cadre Django. Nous couvrirons l'installation redis, la configuration de Django et les comparaisons de performances pour mettre en évidence les avantages de la mise en cache.
Introduction à Redis et mise en cache
La mise en cache améliore considérablement la vitesse d'application en stockant des données fréquemment consultées dans un emplacement facilement disponible (le cache) plutôt que de remettre à plusieurs reprises des sources de données plus lentes comme les bases de données. Redis, un magasin de structure de données open-source et en mémoire, excelle sous forme de base de données, de cache et de courtier de messages. Il réduit considérablement la charge de la base de données en servant des données directement à partir de son cache.
Installation de redis
Pour les utilisateurs d'Ubuntu, l'installation la plus simple implique ces commandes:
sudo apt-get update sudo apt install redis
Vérifiez l'installation avec:
redis-cli --version
Les utilisateurs de Windows peuvent utiliser le sous-système Windows pour Linux (WSL2). Tout d'abord, activez WSL2 (exécuter en tant qu'administrateur):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Installez Ubuntu à partir de la boutique Microsoft, puis lancez le terminal Ubuntu et exécutez:
sudo apt-add-repository ppa:redislabs/redis sudo apt-get update sudo apt-get upgrade sudo apt-get install redis-server sudo service redis-server restart
DJANGO API Exemple: Cacheing Data du produit
Cet exemple démontre la mise en cache des données du produit dans une application Django. Nous utiliserons django-redis
pour interagir avec Redis.
Prérequis:
- django
-
django-redis
- redis
-
loadtest
(pour les tests de performances)
Configuration du projet:
- Créer un répertoire de projet et un environnement virtuel.
- Activez l'environnement virtuel et installez les dépendances:
pip install django==1.9 django-redis djangorestframework
- Créer un projet et une application Django:
django-admin startproject django_cache cd django_cache python manage.py startapp store
-
Ajouter
store
etrest_framework
àINSTALLED_APPS
danssettings.py
. -
Créez le modèle
Product
dansstore/models.py
:
from django.db import models class Product(models.Model): name = models.CharField(max_length=255) description = models.TextField(null=True, blank=True) price = models.IntegerField(null=True, blank=True) date_created = models.DateTimeField(auto_now_add=True, blank=True) date_modified = models.DateTimeField(auto_now=True, blank=True) def __str__(self): return self.name def to_json(self): return { 'id': self.id, 'name': self.name, 'desc': self.description, 'price': self.price, 'date_created': self.date_created, 'date_modified': self.date_modified }
- exécuter les migrations:
python manage.py makemigrations store python manage.py migrate
- Créez un superutilisateur et remplissez la base de données avec des exemples de données.
Configuration de redis dans django:
Ajouter ce qui suit à settings.py
:
CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://127.0.0.1:6379/', 'OPTIONS': { 'CLIENT_CLASS': 'django_redis.client.DefaultClient', } } }
Création de vues et d'URL:
Créer store/views.py
avec des points de terminaison pour la récupération des produits (avec et sans mise en cache):
from rest_framework.decorators import api_view from rest_framework.response import Response from django.core.cache import cache from .models import Product @api_view(['GET']) def view_products(request): products = Product.objects.all() results = [p.to_json() for p in products] return Response(results) @api_view(['GET']) def view_cached_products(request): products = cache.get('products') if products: return Response(products) else: products = Product.objects.all() results = [p.to_json() for p in products] cache.set('products', results) return Response(results)
Créer store/urls.py
:
from django.urls import path from . import views urlpatterns = [ path('', views.view_products), path('cached/', views.view_cached_products), ]
inclure store/urls
dans votre principal urls.py
.
Test de performance avec loadtest
:
installer loadtest
: sudo npm install -g loadtest
Exécutez des tests pour les deux points de terminaison pour comparer les performances. Le critère d'évaluation mis en cache devrait afficher des demandes considérablement améliorées par seconde après la population de cache initiale.
Conclusion:
Ce tutoriel illustre l'intégration simple de la mise en cache Redis dans une application Django, entraînant des gains de performance substantiels. La nature en mémoire de Redis et la facilité d'utilisation en font un excellent choix pour améliorer la vitesse d'application et réduire la charge du serveur. N'oubliez pas d'envisager des stratégies de mise en cache pour optimiser les performances et l'utilisation des ressources de votre application.
(Image de miniatures post-greffe générée par Openai Dall-E.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











Python excelle dans les jeux et le développement de l'interface graphique. 1) Le développement de jeux utilise Pygame, fournissant des fonctions de dessin, audio et d'autres fonctions, qui conviennent à la création de jeux 2D. 2) Le développement de l'interface graphique peut choisir Tkinter ou Pyqt. Tkinter est simple et facile à utiliser, PYQT a des fonctions riches et convient au développement professionnel.

Python est plus facile à apprendre et à utiliser, tandis que C est plus puissant mais complexe. 1. La syntaxe Python est concise et adaptée aux débutants. Le typage dynamique et la gestion automatique de la mémoire le rendent facile à utiliser, mais peuvent entraîner des erreurs d'exécution. 2.C fournit des fonctionnalités de contrôle de bas niveau et avancées, adaptées aux applications haute performance, mais a un seuil d'apprentissage élevé et nécessite une gestion manuelle de la mémoire et de la sécurité.

Pour maximiser l'efficacité de l'apprentissage de Python dans un temps limité, vous pouvez utiliser les modules DateTime, Time et Schedule de Python. 1. Le module DateTime est utilisé pour enregistrer et planifier le temps d'apprentissage. 2. Le module de temps aide à définir l'étude et le temps de repos. 3. Le module de planification organise automatiquement des tâches d'apprentissage hebdomadaires.

Python est meilleur que C dans l'efficacité du développement, mais C est plus élevé dans les performances d'exécution. 1. La syntaxe concise de Python et les bibliothèques riches améliorent l'efficacité du développement. Les caractéristiques de type compilation et le contrôle du matériel de CC améliorent les performances d'exécution. Lorsque vous faites un choix, vous devez peser la vitesse de développement et l'efficacité de l'exécution en fonction des besoins du projet.

PythonlistSaReparmentofthestandardLibrary, tandis que les coloccules de colocède, tandis que les colocculations pour la base de la Parlementaire, des coloments de forage polyvalent, tandis que la fonctionnalité de la fonctionnalité nettement adressée.

Python excelle dans l'automatisation, les scripts et la gestion des tâches. 1) Automatisation: La sauvegarde du fichier est réalisée via des bibliothèques standard telles que le système d'exploitation et la fermeture. 2) Écriture de script: utilisez la bibliothèque PSUTIL pour surveiller les ressources système. 3) Gestion des tâches: utilisez la bibliothèque de planification pour planifier les tâches. La facilité d'utilisation de Python et la prise en charge de la bibliothèque riche en font l'outil préféré dans ces domaines.

Est-ce suffisant pour apprendre Python pendant deux heures par jour? Cela dépend de vos objectifs et de vos méthodes d'apprentissage. 1) Élaborer un plan d'apprentissage clair, 2) Sélectionnez les ressources et méthodes d'apprentissage appropriées, 3) la pratique et l'examen et la consolidation de la pratique pratique et de l'examen et de la consolidation, et vous pouvez progressivement maîtriser les connaissances de base et les fonctions avancées de Python au cours de cette période.

Python et C ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1) Python convient au développement rapide et au traitement des données en raison de sa syntaxe concise et de son typage dynamique. 2) C convient à des performances élevées et à une programmation système en raison de son typage statique et de sa gestion de la mémoire manuelle.
