Python Memcached,连接到Azure VM服务器

时间:2019-03-21 18:11:13

标签: memcached azure-virtual-machine python-memcached

我已经在Azure VM服务器(Ubuntu)上安装了Memcached。现在,我需要从在其他地方运行的Python程序连接到此。

将它们安装在同一服务器上时,此方法有效:

import memcache
MEMCACHE_SOCKET_PATH = 'unix:<path_to>/memcached.sock'  
memcache_client = memcache.Client([MEMCACHE_SOCKET_PATH], debug=0)

现在,我不确定用于MEMCACHE_SOCKET_PATH的内容。运行Memcached的VM具有一个静态IP地址,我创建了一个指向11211的端点(打开了一个端口)。memcached.sock位于主目录中。

这是我在VM上运行Memcached的方式:

memcached -d -m 500 -s $HOME/memcached.sock -P $HOME/memcached.pid

1 个答案:

答案 0 :(得分:1)

根据您对在Azure VM上运行memcached的命令的描述,我看到您的memcached是使用Unix域套接字而不是TCP / IP运行的。 Unix domain socket是数据通信的IPC(Inter-process communication)解决方案,用于在同一主机操作系统上执行的进程之间交换数据,不能在RPC(Remote procedure call)方案中使用。 / p>

因此,要解决此问题,您只需要使用memcached.conf启动memcached并使其在TCP / IP上运行即可。如果您使用命令sudo apt-get install memcached安装memcached,则memcached.conf文件应位于路径/etc/memcached.conf处。然后,您可以使用sudo vim /etc/memcached.cond来设置端口-p的值并监听ip -l,如下所述。

-p 11211
-l 0.0.0.0

在标签Networking上添加了VM NSG网络接口的入站规则后,便可以通过tcp地址<your vm host ip>:<port like 11211>在Python中连接内存缓存服务。