memcached - Python Memcached,连接到 Azure VM 服务器
问题描述
我已经在 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
解决方案
根据您对在 Azure VM 上运行 memcached 的命令的描述,我看到您的 memcached 使用 Unix 域套接字而不是 TCP/IP 运行。Unix域套接字是一种IPC(进程间通信)数据通信解决方案,用于在同一主机操作系统上执行的进程之间交换数据,它不能用于RPC(远程过程调用)场景。
因此,要修复它,您只需使用启动 memcachedmemcached.conf
并使其在 TCP/IP 上工作。如果您使用该命令sudo apt-get install memcached
安装 memcached,则该memcached.conf
文件应位于路径/etc/memcached.conf
. 然后您可以通过设置端口和监听 ipsudo vim /etc/memcached.cond
的值来更改它,如下所示。-p
-l
-p 11211
-l 0.0.0.0
当您在选项卡中添加了 VM NSG 网络接口的入站规则后Networking
,您可以通过 tcp 地址连接 Python 中的 memcached 服务<your vm host ip>:<port like 11211>
。
推荐阅读
- gcc - stm32CubeIDE 因为 arm-eabi-gcc 不能刷机
- java - mp3agic 的负查找偏移
- zooming - VCL Windows 应用程序中的手势缩放和平移
- php - CakePHP:在我们拥有类别ID的数组后搜索产品
- javascript - 为什么我不能使用 esitFullscreen 方法退出全屏?
- emc - 输入加速服务器的问题
- python - document.scrollingElement 不工作。无法向下滚动以检查元素
- docker - Dockerizing python 项目 Dockerfile 创建
- c# - 使用 c# 在 Microsoft 365 日历事件上按关键字搜索 MS Graph API
- python - Tensorflow 中的自定义 BERT 分类器