stackoverflowで初めての質問を書いています。私はpython 2.7.11とdjnago 1.10.2を使っています。私は製品モデルを作成し、データベースに1000個の製品を保存しました。(postgrelsql)実際には、私はDjango memcachedを使用しましたが、動作しません。django memcachedを使用してAPIをキャッシュする方法
Following steps:- 1. Added settings.py in caches backends.
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'product_cache_table',
}
}
次に、「キャッシュテーブルの作成」。 Django Memcachedを使用したデータベースキャッシュ -
Djangoはキャッシュされたデータをデータベースに格納できます。データベースのテーブルをキャッシュのバックエンドとして使用する場合は、これが最適です。
"django.core.cache.backends.memcached.MemcachedCache"に "BACKEND"を設定します。 データベーステーブルの名前である "tablename"に "LOCATION"を設定します。この名前は、データベースでまだ使用されていない有効なテーブル名であれば、何でも構いません。
In this example, the cache table’s name is "product_cache_table:"
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'product_cache_table',
}
}
次に、「キャッシュテーブルの作成」。データベースキャッシュを使用する前に、このコマンドを使用してキャッシュテーブルを作成する必要があります。
python manage.py createcachetable
Write business login. (product/views.py)
django.views.decorators.cache.cache_page()¶
def heavy_view(request):
cache_key = 'product'
cache_time = 18 # time to live in seconds
result = Product.objects.all() # some calculations here
for l in result:
a = cache.set(cache_key, l, cache_time)
c = cache.get(cache_key)
return HttpResponse(c)
私はそれがproduct_cache_tableだけPRODUCT_NAMEのすべての製品が保存されているセーブURLをヒットした場合。そのデータを取得したときにはproduct_nameしか取得できませんが、そのテーブルのすべての属性が必要です。 Django Memcachedを使用してApiをキャッシュする方法。 Django Memcachedのワークフロー。 私は読書を読んだ
ありがとうございますが、diff値のdiffキーを設定して、モデル内のすべてのフィールドを取得する方法を教えてください。単一フィールドのキャッシュデータのみを取得します。 –
ありがとうございました。 –