PHP Conference Japan 2024

Memcache

新增註記

使用者提供的註記 4 則註記

rob4226 at yahoo dot com
3 年前
感謝 GitHub 上的 nono303,我們可以在 Windows 上運行這個 PHP 擴充套件和 memcached!這對於匹配正式環境 Unix 伺服器的開發環境來說非常棒。我正在 Windows 10 電腦上使用 PHP 8.0 和這個 memcache 擴充套件,搭配在 localhost 上運行的 memcached 伺服器,而且運作良好。

我無法張貼連結,但這個擴充套件的 dll 檔案位於儲存庫:nono303/PHP-memcache-dll

而適用於 Windows 的實際 memcached 伺服器位於儲存庫:nono303/memcached
gabriel dot maybrun at demandmedia dot com
10 年前
注意事項:最近我被指派從 PECL memcache 遷移到 PECL memcached,並遇到了一個主要問題——memcache 和 memcached 以不同的方式序列化資料,這意味著使用一個函式庫寫入的資料不一定能被另一個函式庫讀取。

例如,如果您使用 memcache 寫入物件或陣列,memcached 會將其解釋為整數。如果您使用 memcached 寫入,memcache 會將其解釋為字串。

簡而言之 - 您無法在不清除快取或隔離快取環境的情況下安全地在 memcache 和 memcached 之間切換。

<?php
$memcache
= new Memcache;
$memcacheD = new Memcached;
$memcache->addServer($host);
$memcacheD->addServers($servers);

$checks = array(
123,
4542.32,
'a string',
true,
array(
123, 'string'),
(object)array(
'key1' => 'value1'),
);
foreach (
$checks as $i => $value) {
print
"Checking WRITE with Memcache\n";
$key = 'cachetest' . $i;
$memcache->set($key, $value);
usleep(100);
$val = $memcache->get($key);
$valD = $memcacheD->get($key);
if (
$val !== $valD) {
print
"Not compatible!";
var_dump(compact('val', 'valD'));
}

print
"Checking WRITE with MemcacheD\n";
$key = 'cachetest' . $i;
$memcacheD->set($key, $value);
usleep(100);
$val = $memcache->get($key);
$valD = $memcacheD->get($key);
if (
$val !== $valD) {
print
"Not compatible!";
var_dump(compact('val', 'valD'));
}
}
xrobau at gmail dot com
7 年前
請注意,Memcache 3.0.8 模組【不】適用於 PHP 7(或更高版本)。

關於這個問題有一個尚未解決的錯誤 - 請參閱 https://bugs.php.net/bug.php?id=72887,在撰寫本文時,該錯誤已存在超過 1 年 - 然而,Memcache 模組的開發似乎已被放棄,現在 MemcacheD 模組是透過 PHP 存取 Memcache 的唯一方法。

如果您正在編寫【新】工具,並且想要使用 Memcache,請使用 MemcacheD 函式庫。如果您正在嘗試修復【舊】工具,您將不得不繼續使用 PHP 5.6,或者花時間修改您的程式碼以使用 MemcacheD。
Lajos Veres
6 年前
3.0.8 版本與 PHP 7 並不相容,但這個分支似乎可以運作:
https://github.com/websupport-sk/pecl-memcache

對於新的專案,memcacheD 聽起來更安全,但這個分支可能有助於維護一些舊有的專案。

Debian 套件管理器選擇了這個版本:https://github.com/websupport-sk/pecl-memcache/commit/4991c2fff22d00dc81014cc92d2da7077ef4bc86

基於以下連結:
http://ppa.launchpad.net/ondrej/php/ubuntu/pool/main/p/php-memcache/ https://packages.debian.org/sid/php/php-memcache
To Top