Как проверить содержимое кеша Django с помощью Python memcached?

Версия для инструментов:

В настоящее время запущен Memcached:

$ ps -ef | grep memcache nobody 2993 1 0 16:46 ? 00:00:00 /usr/bin/memcached -m 64 -p 11211 -u nobody -l 127.0.0.1 

Я использую memcached и python memcached с моим Django proj, и я установил его так, как показано ниже в settings.py :

 CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211', 'TIMEOUT': 86400, }, } 

Я установил кеш в код:

 from django.core.cache import cache cache.set('countries', ['Canada', 'US']) 

Затем я открываю оболочку Django для проверки содержимого кеша:

 >>> from django.core.cache import cache >>> 'countries' in cache True >>> import memcache >>> mc = memcache.Client(['127.0.0.1:11211'], debug=1) >>> mc.get('countries') >>> 

Когда я использую кеш Django, существует ключ countries . Однако, когда я использую memcache Python, я ничего не получаю для стран. Что я делаю неправильно выше?

3 Solutions collect form web for “Как проверить содержимое кеша Django с помощью Python memcached?”

Django префикс кеширует ключи с двоеточием. Вы можете проверить memcached так, если это не поможет.

Вы можете использовать memcached_stats: https://github.com/dlrust/python-memcached-stats

Пример: (я использовал pylibmc для кеша, но я думаю, что это должно быть то же самое, если вы используете python-memcached)

 import pylibmc from memcached_stats import MemcachedStats mem = MemcachedStats() # connecting to localhost at default memcached port # print out all your keys mem.keys() # say for example key[0] is 'countries', then to get the value just do key = mem.keys()[0] value = mc.get (key) 

Существует также интерфейс командной строки для memcaced_stats: python -m memcached_stats

Посмотрите на github repo, поскольку README очень понятен.

Следующий скрипт выгружает все содержимое сервера memcached. Он протестирован с Ubuntu 12.04 и localhost memcached, поэтому ваше перемещение может отличаться.

 #!/usr/bin/env bash echo 'stats items' \ | nc localhost 11211 \ | grep -oe ':[0-9]*:' \ | grep -oe '[0-9]*' \ | sort \ | uniq \ | xargs -L1 -I{} bash -c 'echo "stats cachedump {} 1000" | nc localhost 11211' 

Что он делает, он проходит через все кэш-панели и печатает по 1000 записей каждого из них.

  • Установка объекта в API кэша Django завершается сбоем из-за ошибки сортировки
  • Удаление определенных элементов из кеша Django?
  • Максимальный размер объекта, который можно сохранить в memcached с помощью memcache.py
  • Кэширование Django только для аутентифицированных пользователей
  • Как кэшировать разбитый на страницы запрос Django
  • Что делать, если я хочу сохранить значение None в memcache?
  • Получить список ключей кэша в Django
  • Пилоны и Memcached
  • Python - лучший язык программирования в мире.