Python Memcached,连接到Azure VM服务器

问题描述 投票:0回答:1

我在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
memcached azure-virtual-machine python-memcached
1个回答
1
投票

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

所以要修复它,你只需要使用memcached.conf启动memcached并使其在TCP / IP上运行。如果您使用命令sudo apt-get install memcached安装memcached,则memcached.conf文件应位于路径/etc/memcached.conf。然后你可以通过使用sudo vim /etc/memcached.cond来设置端口-p和listen ip -l的值来改变它,如下所示。

-p 11211
-l 0.0.0.0

当您在选项卡Networking中添加了VM NSG网络接口的入站规则时,您可以通过tcp地址<your vm host ip>:<port like 11211>连接Python中的memcached服务。

© www.soinside.com 2019 - 2024. All rights reserved.