我想在Python和PHP之間共享一個Memcache密鑰。 Python寫入密鑰並由PHP讀取。我使用CakePHP框架,使用php-pecl-memcache(而不是php-pecl-memcached),以及python-memcache所有的python庫。與PHP和Python共享Memcache
的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 ::得到()[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庫在一起玩的更好?
- 另外,有沒有一種簡單的方法來創建一個公共內存空間之間的蟒蛇/ PHP?
謝謝,但我想要做的是共享一個簡單的數據類型,無論是一個int或一個字符串,所以不需要序列化,pickle甚至壓縮。我寧願不寫信給文件,因爲性能的影響,雖然是的,那會有訣竅。 –
如果你已經嘗試了整數和字符串,我認爲你可以避免使用(一致的)序列化。 –
你可能會錯過一些觀點,memcache有一個壓縮和序列化數據的選項(甚至只是一個字節)。這更多用於內部使用。我猜python API是默認啓用壓縮的,而你的PHP api在默認情況下並未啓用它。你沒有提到你用於memcache的API,所以我想沒有人能真正挖掘這些文檔並提供一個洞察力的答案。 – ajreal