get()set()memcached使用Python监听UDP

时间:2016-03-17 09:07:11

标签: python udp memcached python-memcached pylibmc

问题:如何get setmemcached仅使用Python(任何生产级别的Python绑定)监听UDP

到目前为止我做过/尝试过的事情

使memcached只监听UDP - 我在memcached config中指定了OPTIONS:

OPTIONS="-p 0 -U 11211" # -U for UDP port and -p for TCP port

验证

# netstat -nlp|grep memcached
udp        0      0 0.0.0.0:11211           0.0.0.0:*                           12095/memcached     
udp6       0      0 :::11211                :::*                                12095/memcached 

问题是,我没有得到验证,即执行getset或只是将我没有让它工作

我已经研究过Python memcache绑定 - 两个广泛使用的绑定(可靠,可用于生产)python-memcachedpylibmc。 对于python-memcached,我没有发现任何明确提及仅指定UPD或任何检查memcached是否正在侦听TCP或UDP。 对于pylibmc,我找到了mention

  

要指定UDP,服务器地址应以“udp:”作为前缀   在“udp:127.0.0.1”

验证pylibmc

>>> import pylibmc
>>> mc_tcp = pylibmc.Client(["127.0.0.1"], binary=True, behaviors={"tcp_nodelay": True, "ketama": True})
>>> mc_udp = pylibmc.Client(["udp:127.0.0.1"], binary=True, behaviors=None)
>>>
>>> mc_tcp.set('udp_key', 12)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
_pylibmc.ConnectionError: error 3 from memcached_set: CONNECTION FAILURE
>>>
>>> mc_udp.set('udp_key', 12)
True
>>>
>>> mc_udp.get('udp_key')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
_pylibmc.NotSupportedError: error 28 from memcached_get(udp_key): ACTION NOT SUPPORTED

验证python-memcached

>>> import memcache
>>> mc = memcache.Client([('127.0.0.1', 11211)])
>>> mc.set('key', 12)
0
>>> mc.get('key')
>>> 

类似的问题 - memcached listeing on UDP with Django

0 个答案:

没有答案