Обмен Memcache с PHP и Python

Я пытаюсь разделить ключ Memcache между Python и PHP. Python записывает ключ, и PHP читает его. Я использую Cakephp framework, с php-pecl-memcache (а не php-pecl-memcached) и python-memcache всю библиотеку python.

Python:

mc = memcache.Client( ["127.0.0.1:11211"]) key = "key1" value = 1323779849 mc.set(key, value) 

PHP:

  echo Cache::read('key1', 'memcached'); 

PHP не может прочитать переменную, я получаю странные «MemcachePool :: get () [http://php.net/memcachepool.get]: не удалось разгрузить данные»; Я подозреваю, что это связано с флагами memcached, которые установлены по-разному в каждой библиотеке.

Это то, что происходит, когда я telnet для memcached:

Python устанавливает ключ:

  get key1 VALUE key1 1 12 1323779849 . END 

PHP устанавливает ключ:

  get key1 VALUE key 1 0 12 1323779849 END 
  • Есть ли способ переопределить эти флаги и просто «сделать свое дело»?
  • Существуют ли библиотеки php / python memcache, которые лучше сочетаются друг с другом?
  • Альтернативно, есть ли простой способ создать общее пространство памяти между python / php?

2 Solutions collect form web for “Обмен Memcache с PHP и Python”

Наконец он получил его на работу. Лот не работал должным образом.

  1. Одна из проблем заключается в том, что php и python используют разные флаги для выполнения разных действий. Не проблема в решении all-python или all-php, но для взаимодействия между средами – настоящая проблема. Полезным ресурсом является http://www.hjp.at/zettel/m/memcached_flags.rxml , который показывает, что флаги python-memcache длиннее целое как «2», которые php-memcache не понимает, следовательно, ошибка сжатия . Я изменил python-memcache, чтобы включить «флаг-переопределение» в функции set. Эта переменная просто заставляет конкретный флаг независимо от того, что, по его мнению, memcache python. Это позволило мне переопределить Int от 2 до 0. Я буду проверять ветвь текущей версии python-memcache и отправить ее в Github. Это позволило мне форсировать длинный флагом (2) python на то, что php понял бы (0).

  2. CakePhp до 1.3.3 сохраняет все ключи в memcached с дополнительным ключом key_expires, помеченным как 768 и т. Д. И т. Д. Без этого дополнительного ключа он не может найти ключ, который вы ищете. К счастью, это поведение было сбрасыто в более поздней версии Cakephp (я просто обновился до 1.3.13), и теперь он работает хорошо.

Когда вы кладете что-то через python memcached, это, вероятно, маринованное. Поэтому PHP не может ее разблокировать. Я бы попытался использовать какой-то очень простой тип, возможно, ctypes? Может быть, сырые строки?

  • Эквивалент PHP list () в Python
  • Система голосования с открытым исходным кодом
  • Использовать «SET NAMES»
  • Как я могу использовать результат возврата скрипта python PHP в реальном времени?
  • FastCGI C ++ и язык скриптов (PHP / Python / Perl)
  • Сохранить файл на веб-сервере из запроса POST
  • Рамки RPC доступны?
  • PHP xmlrpc-клиент и сервер Python 2.5 xmlrpc: неполные данные и сброс соединения с ошибкой peer
  • Значение HMAC несовместимо с Python и PHP
  • Является ли обработка исключений python более эффективной, чем PHP и / или другие языки?
  • Есть ли эквивалент PHP hash_hmac в Python / Django?
  •  
    Interesting Posts for Van-Lav

    Python – Как написать декоратор, который восстанавливает cwd?

    Python Pandas Drop Duplicates сохраняет второе место

    Как сделать Keras Neural Net лучше, чем логистическая регрессия по данным Iris

    Настройка клиента Django OAuth 2 – клиент не распознает токены

    Ссылка на статические файлы Flask с url_for

    Как получить список листов (имя и «gid») в электронной таблице Google с помощью Drive API?

    Фильтрация внешних ключей в Django

    tkinter LabelFrame не поддерживает виджетов

    Как включить перенос строк в ноутбуке ipython

    Создание такой же последовательности случайных чисел в Python, NumPy и R

    Как избежать дублирования в таблице взаимосвязей «многие ко многим» в SQLAlchemy – python?

    Оцените несколько переменных в одном выражении «если»?

    Mootools Запрос получения «501 Неподдерживаемый метод (« ОПЦИИ ») ответ

    Получение списка определенных элементов индекса из списка словарей в python (понимание списка)

    Ошибка диаграммной диаграммы Django

    Python - лучший язык программирования в мире.