2017-01-04 14 views
1

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のワークフロー。 私は読書を読んだ

答えて

2

memcacheはキー値です。つまり、1つのキーに1つの値があることを意味します。異なる値で同じキーとして処理しています。最後の値がそこに設定されます。代わりに好きdo

+0

ありがとうございますが、diff値のdiffキーを設定して、モデル内のすべてのフィールドを取得する方法を教えてください。単一フィールドのキャッシュデータのみを取得します。 –

+0

ありがとうございました。 –

-2

私はプロジェクトにdjango memcachedを使用しました。それは適切に働いています。

関連する問題