Je suis en cours d'exécution d'un service memcached sur mon système Windows et j'ai configuré mes paramètres de dev pour avoir les paramètres de cache suivants:django memcache cache manquez toujours
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
'TIMEOUT': 3600,
'OPTIONS': {
'MAX_ENTRIES': 100
}
}
}
Et je mise et obtenir le contenu dans/à partir du cache en utilisant le code suivant:
from django.core.cache import cache
def get_element(fsid):
element = cache.get(str(fsid)) # get element from memcache if present
if element is None:
info("cache miss for fsid-"+str(fsid))
fs = FlowStatusModel.objects.get(pk=fsid)
pickle_path = fs.pickle
gcs_pickle_path = fs.gcs_pickle
try:
info("reading from local disk")
with open(pickle_path, 'rb') as handle:
element = pickle.load(handle)
except:
info("local disk failed. copying file from cloud storage bucket to local disk")
create_and_copy(gcs_pickle_path, pickle_path)
with open(gcs_pickle_path, 'rb') as handle:
element = pickle.load(handle)
info("adding fsid-"+str(fsid) + " to cache with 1hour timeout")
cache.set(str(fsid), element, 3600)
return element
Je vois dans le journal qu'il y a toujours un cache manquant. Je ne pouvais pas comprendre si django était capable de mettre l'élément dans le cache. Si j'essaie de python manage.py shell
avec set
simple et get
, je suis en mesure de récupérer les données. J'ai essayé d'exécuter la commande memcached.exe -vv
à partir de la commande prompgt pour voir si elle recevait les requêtes mais dans aucun des scénarios (à partir du serveur dev/manage.py shell) je vois n'importe quel ensemble ou obtenir des informations imprimées sur la console. J'apprécie toute aide pour résoudre le problème.
J'insère à peine 5 entrées à partir de maintenant. Pensez-vous que c'est toujours un problème? –
Comment utiliser les outils memcached pour confirmer que c'est le cas? Il va vous montrer combien d'éléments le cache contient réellement – e4c5
J'ai fait 'telnet 127.0.0.1 11211' et je vois que' STAT cmd_set' ne change pas quand memcached est touché par le serveur django mais il augmente quand j'essaye de partir 'python manage.py shell'. Je pense qu'il y a un problème avec le serveur Django. Voyez-vous des problèmes dans ma configuration actuelle? Par ailleurs, je n'ai ajouté aucune classe de middleware de cache dans le champ 'MIDDLEWARE_CLASSES' du fichier de paramètres. –