使用memcached.sock路径

时间:2018-03-24 18:16:09

标签: python memcached python-memcached

如何使用memcached.sock的路径连接到Python-memcached? (Python 2.7)

Memcached预先安装在我的主机上(Webfaction)。我已经启动它并验证它正在运行。我还验证了memcached.sock在我的主目录中。文档说:

  

“Memcached实例启动并运行后,您可以通过它访问它   套接字文件(〜/ memcached.sock)的路径与软件或   使用memcached的库。“

我试过这个:

import memcache
mc = memcache.Client(['127.0.0.1:11211'], debug=1)
mc.set("some_key", "Some value")

但我在mc.set上收到错误:

Connection refused.  Marking dead.

我也试过

mc = memcache.Client('~/memcached.sock', debug=1)

然后mc.set上的错误是

Name or service not known.  Marking dead.

1 个答案:

答案 0 :(得分:2)

我通过这样做得到了它:

设置:

memcached -d -s /tmp/memcached.sock

代码:

import memcache
mc = memcache.Client(['unix:/tmp/memcached.sock'], debug=0)
mc.set('hello', 'world')
print(mc.get('hello'))

完整测试:

docker run --rm -it python:2.7 bash -c 'apt-get update && apt-get install -y memcached && memcached -u nobody -d -s /tmp/memcached.sock && pip install python-memcached && python -c "import memcache; mc = memcache.Client(['"'"'unix:/tmp/memcached.sock'"'"'], debug=0); mc.set('"'"'hello'"'"', '"'"'world'"'"'); print(mc.get('"'"'hello'"'"'))"'

...剧透,它打印出"world"