Django-DRFメモリキャッシュメカニズム

1136 ワード

公式文書:http://chibisov.github.io/drf-extensions/docs/     
  • 位置:Caching  - CacheResponsemixin
  • 1.拡張パッケージの取り付け
    pip install drf-extensions
    2.setting.pyを設定します(デフォルト設定されています)。
    REST_FRAMEWORK_EXTENSIONS = {
        'DEFAULT_OBJECT_CACHE_KEY_FUNC':
          'rest_framework_extensions.utils.default_object_cache_key_func',
        'DEFAULT_LIST_CACHE_KEY_FUNC':
          'rest_framework_extensions.utils.default_list_cache_key_func',
    }
    .Views.pyで導入・使用し、直接CacheResponsemixinを後継クラスの先頭に置く。
    from myapps.serializers import UserSerializer
    from rest_framework_extensions.cache.mixins import CacheResponseMixin
    
    class UserViewSet(CacheResponseMixin, viewsets.ModelViewSet):
        serializer_class = UserSerializer
    4.キャッシュの有効期限を設定し、データの更新を保持し、古いデータの長時間保持を防止する。setting.pyに設定する
    #DRF       
    REST_FRAMEWORK_EXTENSIONS = {
        'DEFAULT_CACHE_RESPONSE_TIMEOUT': 60 * 15
    }
    まとめ:
  • 一般公共データ、ホームページ記事、商品などの設定キャッシュがいいです。
  • ユーザ操作でデータを適時に更新する必要がある場合は、キャッシュを設定する必要はありません。
  • はメモリキャッシュ機構であるため、コンピュータが再起動するたびにキャッシュが無効になります。