このチュートリアルでは、特にDjangoフレームワーク内で、Pythonアプリケーションのパフォーマンスを高めるためにRedisキャッシングを活用する方法を示しています。 Redisのインストール、Django構成、およびパフォーマンスの比較をカバーして、キャッシュの利点を強調します。
redisとキャッシュの紹介キャッシュは、データベースのような遅いデータソースを繰り返しクエリするのではなく、頻繁にアクセスできるデータを容易に利用できる場所(キャッシュ)に保存することにより、アプリケーションの速度を大幅に向上させます。 オープンソースのインメモリデータ構造ストアであるRedisは、データベース、キャッシュ、メッセージブローカーとして優れています。 キャッシュから直接データを提供することにより、データベースの負荷を劇的に削減します。
redisのインストール
Ubuntuユーザーの場合、最も単純なインストールには、これらのコマンドが含まれます :
でインストールを確認しますWindowsユーザーは、Linux(WSL2)にWindowsサブシステムを使用できます。 まず、WSL2(管理者として実行)を有効にします:
sudo apt-get update sudo apt install redis
Microsoftストアからubuntuをインストールし、Ubuntu端末を起動して実行します:
redis-cli --version
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
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-redis
django
django-redis
(パフォーマンステスト用)loadtest
プロジェクトディレクトリと仮想環境を作成します 仮想環境をアクティブにし、依存関係をインストールします:
pip install django==1.9 django-redis djangorestframework
django-admin startproject django_cache cd django_cache python manage.py startapp store
:store
でrest_framework
モデルを作成します
INSTALLED_APPS
settings.py
Product
store/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 }
python manage.py makemigrations store python manage.py migrate
製品を取得するためのエンドポイントを使用して(キャッシュなしの有無にかかわらず):
settings.py
create
CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://127.0.0.1:6379/', 'OPTIONS': { 'CLIENT_CLASS': 'django_redis.client.DefaultClient', } } }
メインに
store/views.py
:
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)
インストールstore/urls.py
:
from django.urls import path from . import views urlpatterns = [ path('', views.view_products), path('cached/', views.view_cached_products), ]
このチュートリアルは、DjangoアプリケーションへのRedisキャッシュの簡単な統合を示しており、その結果、実質的なパフォーマンスの向上が生じています。 Redisのメモリ内の性質と使いやすさにより、アプリケーション速度の向上とサーバーの負荷の削減に最適です。 アプリケーションのパフォーマンスとリソースの利用を最適化するために、キャッシュ戦略を検討することを忘れないでください。
(Openai Dall-eによって生成されたサムネイル画像を投稿)以上がDjangoアプリケーションでRedisを使用してキャッシュする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。