Redisのdjango-redisの利用

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

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート