2017-01-04 17 views
1

1-й раз, когда вы задаете вопрос о stackoverflow. Я использую python 2.7.11 и djnago 1.10.2. Я создал модели продуктов и сохранил 1000 продуктов в моей базе данных. (Postgrelsql) Собственно, я использовал Django memcached, но не работал.Как кэшировать api с помощью django memcached

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 может хранить свои кэшированные данные в вашей базе данных. Это лучше всего работает, если у вас есть быстрый, хорошо проиндексированный сервер базы данных. Чтобы использовать таблицу базы данных в качестве бэкэнда кэша:

Установите «BACKEND» на «django.core.cache.backends.memcached.MemcachedCache». Установите «LOCATION» в «tablename», имя таблицы базы данных. Это имя может быть любым, что вы хотите, если это допустимое имя таблицы, которое еще не используется в вашей базе данных.

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) 

Если я попал в URL он сохраняет весь продукт в product_cache_table, но только PRODUCT_NAME сохраняется. когда мы получаем эти данные, мы получаем только product_name, но мне нужны все атрибуты в этой таблице. Как кэшировать Api, используя Django Memcached. Как работает рабочий процесс в Django Memcached. Я прочитал окунание

ответ

2

memcache - ключевое значение. Это означает, что один ключ имеет одно значение. Вы делаете это как тот же ключ с разными значениями. Таким образом, это последнее значение будет установлено. Вместо этого делать

cache.set(cache_key, list of products, cache_time) 
+0

спасибо, но ключ дифференциала в заданном значении отличен, то как получить все поля в модели. мы получаем только данные кэша одного поля. –

+0

Thanku sir, его работая правильно. –

-2

Я использовал django memcached в проектах. Он работает нормально.