Redisのdjango-redisの利用

リリース: 2020-05-20 09:02:50
転載
2462 人が閲覧しました

Redisのdjango-redisの利用

カスタマイズされた接続プール

このメソッドは通常の py ファイル操作 Redis と同じで、コードは次のとおりです。 py

import redis from django.shortcuts import render,HttpResponse from utils.redis_pool import POOL def index(request): conn = redis.Redis(connection_pool=POOL) conn.hset('kkk','age',18) return HttpResponse('设置成功') def order(request): conn = redis.Redis(connection_pool=POOL) conn.hget('kkk','age') return HttpResponse('获取成功')
ログイン後にコピー

サードパーティコンポーネントによる redis の操作

インストール

pip3 install django-redis
ログイン後にコピー

構成:


settings.py

# redis配置 CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", "CONNECTION_POOL_KWARGS": {"max_connections": 100} # "PASSWORD": "密码", } } }
ログイン後にコピー

使用:

views.py

import redis from django.shortcuts import render,HttpResponse from django_redis import get_redis_connection def index(request): conn = get_redis_connection("default") return HttpResponse('设置成功') def order(request): conn = get_redis_connection("default") return HttpResponse('获取成功')
ログイン後にコピー
from rest_framework.views import APIView from rest_framework.response import Response from django.core.cache import cache class OrderView(APIView): def get(self,request,*args,**kwargs): # conn = get_redis_connection('default') cache.set('a','b') print(cache.get('a')) return Response('..')
ログイン後にコピー

フル サイト キャッシュ

コンテンツが存在する場合は、一連の認証およびその他の操作の後、ミドルウェアを使用します。キャッシュを取得するには、FetchFromCacheMiddleware を使用します。コンテンツを取得してユーザーに返します。

ユーザーに返す前に、キャッシュに既に存在するかどうかを確認します。存在しない場合は、UpdateCacheMiddleware がキャッシュをキャッシュに保存します。フルサイト キャッシュの実現

MIDDLEWARE = [ 'django.middleware.cache.UpdateCacheMiddleware', # 其他中间件... 'django.middleware.cache.FetchFromCacheMiddleware', ]
ログイン後にコピー

1 つは一番上に、もう 1 つは一番下

views.py

from django.shortcuts import render,HttpResponse import time def index(request): ctime = str(time.time()) return HttpResponse(ctime) def order(request): ctime = str(time.time()) return HttpResponse(ctime)
ログイン後にコピー

はフルサイト キャッシュで構成されます。 (特定の範囲内)、上の 2 つのビューによって返される時間は同じです。すべてキャッシュ時間です

個別のビュー キャッシュ

方法 1:デコレーター

from django.views.decorators.cache import cache_page @cache_page(60 * 15) def my_view(request): ...
ログイン後にコピー

方法 2: url を使用

from django.views.decorators.cache import cache_page urlpatterns = [ url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)), ]
ログイン後にコピー

部分ページ キャッシュ

1. TemplateTag を導入します

{% load cache %}
ログイン後にコピー

2. キャッシュを使用します

{% cache 5000 缓存的key %} 缓存内容 {% endcache %}
ログイン後にコピー

Redis の詳細については、redis 入門チュートリアル

列に注目してください。

以上がRedisのdjango-redisの利用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!