Python Memcached, подключитесь к серверу виртуальных машин Azure - PullRequest
0 голосов
/ 21 марта 2019

Я установил Memcached на сервере виртуальных машин Azure (Ubuntu). Теперь мне нужно подключиться к этому из моей программы на Python, которая работает в другом месте.

Когда они были установлены на одном сервере, это работало:

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

Теперь я не уверен, что использовать для MEMCACHE_SOCKET_PATH. Виртуальная машина, на которой запущен Memcached, имеет статический IP-адрес, и я создал конечную точку (открыл порт) для 11211. memcached.sock находится в домашнем каталоге.

Вот как я запускаю Memcached на виртуальной машине:

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

1 Ответ

1 голос
/ 03 апреля 2019

Согласно вашему описанию команды для запуска memcached на виртуальной машине Azure, я вижу, что ваша memcached работала с сокетом домена Unix, а не TCP / IP. Сокет домена Unix - это решение IPC ( Межпроцессное взаимодействие ) обмена данными для обмена данными между процессами, выполняющимися в одной операционной системе хоста, его нельзя использовать в RPC ( Сценарий удаленного вызова процедуры ).

Итак, чтобы исправить это, вам просто нужно запустить memcached с помощью memcached.conf и заставить его работать по 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

Когда вы добавили правило входящих для вашей сети VM NSG.интерфейс на вкладке Networking, затем вы можете подключить сервис memcached в Python через tcp адрес <your vm host ip>:<port like 11211>.

...