Question: Je ne suis pas en mesure d'obtenir memcached
écouter sur UDP
, au travail (get
set
delete
) avec Django.listeing memcached sur UDP avec Django
J'ai l'memcached écoute uniquement sur UDP
11211
, comme je l'ai mentionné dans le previous question. Ce que j'ai essayé jusqu'à présent:
1.Mise CACHES
utiliser python-memcached
Python obligatoire. get et set n'a pas fonctionné avec des réglages simples c.-à-'LOCATION': '127.0.0.1:11211'
, donc essayé explicitement préciser udp
(en utilisant cette mention comme la raison):
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'udp:127.0.0.1:11211',
'TIMEOUT': None,
}
}
a donné:
ValueError: Unable to parse connection string: "udp:localhost:11211"
2.Verr CACHES
pour utiliser pylibmc
Reliure Python:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
'LOCATION': 'udp:127.0.0.1:11211',
'TIMEOUT': None,
}
}
Le serveur a fonctionné très bien - continuer à vérifier:
>>> import django
>>> from django.core.cache import cache
>>> cache.set('udp_key', 12)
>>> cache.get('udp_key')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/django/core/cache/backends/memcached.py", line 84, in get
val = self._cache.get(key)
NotSupportedError: error 28 from memcached_get(:1:udp_key): ACTION NOT SUPPORTED
post-scriptum Ne faites pas un memcached sur TCP
vs UDP
débat
Une question similaire - get() set() memcached listening on UDP using Python
Merci d'avoir creusé dedans. Comme il est clair, même pylibmc ne supporte pas get, maintenant la question demeure - comment pouvons-nous avoir memcached sur UDP pour travailler avec Django, en utilisant un paquet de niveau de production. –
J'ai trouvé https://github.com/idanmo/python-memcached-udp qui pourrait être utilisé comme point de départ. Je l'ai forké pour supporter python 3 sur https://github.com/mfeliu/python-memcached-udp. Si vous êtes intéressé, nous pourrions écrire un backend de cache de django qui l'utilise. –