如何通过memcached.sock路径连接Python-memcached(Python 2.7)
连接Webfaction上的Memcached Unix套接字
嘿,你已经把Memcached服务跑起来了,只差最后一步用Python的memcache库连接它啦!针对Unix套接字的连接方式,其实很简单,只要在memcache.Client()里指定正确的套接字路径格式就行。
正确的连接代码
你需要把套接字路径写成 unix:/home/your_username/memcached.sock 这样的格式(记得把your_username换成你实际的Webfaction用户名),具体代码如下:
import memcache # 替换成你实际的主目录绝对路径 socket_path = "unix:/home/your_username/memcached.sock" mc = memcache.Client([socket_path], debug=0) # 测试连接是否正常 mc.set("test_key", "Hello from Memcached via socket!") print(mc.get("test_key")) # 正常的话会输出对应的字符串
关键细节说明
unix:前缀不能少:memcache库靠这个前缀识别这是Unix套接字连接,而非常规的TCP/IP连接。- 用绝对路径:别用相对路径
~/memcached.sock,Python脚本通常不会自动解析~符号,直接写完整的绝对路径更稳妥。 - 权限排查:如果连接失败,先确认你的Web应用进程(比如Apache、uWSGI)有权限读取
memcached.sock文件,Webfaction一般会默认配置好,但遇到权限错误时可以检查文件的所属组和权限设置。
额外补充:如果用pymemcache库
要是之后你换成pymemcache库,连接方式略有不同,这里也给你参考:
from pymemcache.client.base import Client mc = Client(unix_socket="/home/your_username/memcached.sock") mc.set("test_key", "Hello from pymemcache!") print(mc.get("test_key"))
内容的提问来源于stack exchange,提问作者user984003
相关产品推荐
相关产品推荐

