Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
204 changes: 116 additions & 88 deletions server-example/run-server.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,91 +2,119 @@

$server = new MemcachedServer();

$server->on (Memcached::ON_CONNECT,
function ($remote_ip, $remote_port) {
echo "Incoming connection from {$remote_ip}:{$remote_port}" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
});

$server->on (Memcached::ON_ADD,
function ($client_id, $key, $value, $flags, $expiration, &$cas) {
echo "client_id=[$client_id]: Add key=[$key], value=[$value], flags=[$flags], expiration=[$expiration]" . PHP_EOL;
$cas = 15;
return Memcached::RESPONSE_SUCCESS;
});

$server->on (Memcached::ON_APPEND,
function ($client_id, $key, $value, $cas, &$result_cas) {
echo "client_id=[$client_id]: Append key=[$key], value=[$value], cas=[$cas]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
});

$server->on (Memcached::ON_PREPEND,
function ($client_id, $key, $value, $cas, &$result_cas) {
echo "client_id=[$client_id]: Prepend key=[$key], value=[$value], cas=[$cas]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
});

$server->on (Memcached::ON_INCREMENT,
function ($client_id, $key, $delta, $initial, $expiration, &$result, &$result_cas) {
echo "client_id=[$client_id]: Incrementing key=[$key], delta=[$delta], initial=[$initial], expiration=[$expiration]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
});

$server->on (Memcached::ON_DECREMENT,
function ($client_id, $key, $delta, $initial, $expiration, &$result, &$result_cas) {
echo "client_id=[$client_id]: Decrementing key=[$key], delta=[$delta], initial=[$initial], expiration=[$expiration]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
});

$server->on (Memcached::ON_DELETE,
function ($client_id, $key, $cas) {
echo "client_id=[$client_id]: Delete key=[$key], cas=[$cas]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
});

$server->on (Memcached::ON_FLUSH,
function ($client_id, $when) {
echo "client_id=[$client_id]: Flush when=[$when]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
});

$server->on (Memcached::ON_GET,
function ($client_id, $key, &$value, &$flags, &$cas) {
echo "client_id=[$client_id]: Get key=[$key]" . PHP_EOL;
$value = "Hello to you client!";
return Memcached::RESPONSE_SUCCESS;
});

$server->on (Memcached::ON_NOOP,
function ($client_id) {
echo "client_id=[$client_id]: Noop" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
});

$server->on (Memcached::ON_REPLACE,
function ($client_id, $key, $value, $flags, $expiration, $cas, &$result_cas) {
echo "client_id=[$client_id]: Replace key=[$key], value=[$value], flags=[$flags], expiration=[$expiration], cas=[$cas]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
});

$server->on (Memcached::ON_SET,
function ($client_id, $key, $value, $flags, $expiration, $cas, &$result_cas) {
echo "client_id=[$client_id]: Set key=[$key], value=[$value], flags=[$flags], expiration=[$expiration], cas=[$cas]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
});

$server->on (Memcached::ON_STAT,
function ($client_id, $key, &$value) {
echo "client_id=[$client_id]: Stat key=[$key]" . PHP_EOL;
$value = "Stat reply";
return Memcached::RESPONSE_SUCCESS;
});

$server->on (Memcached::ON_QUIT,
function ($client_id) {
echo "client_id=[$client_id]: Client quit" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
});

$server->run ("127.0.0.1:3434");
$server->on(
Memcached::ON_CONNECT,
function ($remote_ip, $remote_port) {
echo "Incoming connection from {$remote_ip}:{$remote_port}" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
}
);

$server->on(
Memcached::ON_ADD,
function ($client_id, $key, $value, $flags, $expiration, &$cas) {
echo "client_id=[$client_id]: Add key=[$key], value=[$value], flags=[$flags], expiration=[$expiration]" . PHP_EOL;
$cas = 15;
return Memcached::RESPONSE_SUCCESS;
}
);

$server->on(
Memcached::ON_APPEND,
function ($client_id, $key, $value, $cas, &$result_cas) {
echo "client_id=[$client_id]: Append key=[$key], value=[$value], cas=[$cas]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
}
);

$server->on(
Memcached::ON_PREPEND,
function ($client_id, $key, $value, $cas, &$result_cas) {
echo "client_id=[$client_id]: Prepend key=[$key], value=[$value], cas=[$cas]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
}
);

$server->on(
Memcached::ON_INCREMENT,
function ($client_id, $key, $delta, $initial, $expiration, &$result, &$result_cas) {
echo "client_id=[$client_id]: Incrementing key=[$key], delta=[$delta], initial=[$initial], expiration=[$expiration]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
}
);

$server->on(
Memcached::ON_DECREMENT,
function ($client_id, $key, $delta, $initial, $expiration, &$result, &$result_cas) {
echo "client_id=[$client_id]: Decrementing key=[$key], delta=[$delta], initial=[$initial], expiration=[$expiration]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
}
);

$server->on(
Memcached::ON_DELETE,
function ($client_id, $key, $cas) {
echo "client_id=[$client_id]: Delete key=[$key], cas=[$cas]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
}
);

$server->on(
Memcached::ON_FLUSH,
function ($client_id, $when) {
echo "client_id=[$client_id]: Flush when=[$when]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
}
);

$server->on(
Memcached::ON_GET,
function ($client_id, $key, &$value, &$flags, &$cas) {
echo "client_id=[$client_id]: Get key=[$key]" . PHP_EOL;
$value = "Hello to you client!";
return Memcached::RESPONSE_SUCCESS;
}
);

$server->on(
Memcached::ON_NOOP,
function ($client_id) {
echo "client_id=[$client_id]: Noop" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
}
);

$server->on(
Memcached::ON_REPLACE,
function ($client_id, $key, $value, $flags, $expiration, $cas, &$result_cas) {
echo "client_id=[$client_id]: Replace key=[$key], value=[$value], flags=[$flags], expiration=[$expiration], cas=[$cas]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
}
);

$server->on(
Memcached::ON_SET,
function ($client_id, $key, $value, $flags, $expiration, $cas, &$result_cas) {
echo "client_id=[$client_id]: Set key=[$key], value=[$value], flags=[$flags], expiration=[$expiration], cas=[$cas]" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
}
);

$server->on(
Memcached::ON_STAT,
function ($client_id, $key, &$value) {
echo "client_id=[$client_id]: Stat key=[$key]" . PHP_EOL;
$value = "Stat reply";
return Memcached::RESPONSE_SUCCESS;
}
);

$server->on(
Memcached::ON_QUIT,
function ($client_id) {
echo "client_id=[$client_id]: Client quit" . PHP_EOL;
return Memcached::RESPONSE_SUCCESS;
}
);

$server->run("127.0.0.1:3434");
64 changes: 36 additions & 28 deletions server-example/set-get-server.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,43 +2,51 @@

$server = new MemcachedServer();

class Storage {
private $values = array ();

public function set ($key, $value, $expiration) {
$this->values [$key] = array ('value' => $value,
'expires' => time () + $expiration);
class Storage
{
private $values = array();

public function set($key, $value, $expiration)
{
$this->values [$key] = array('value' => $value,
'expires' => time() + $expiration);
}

public function get ($key) {
if (isset ($this->values [$key])) {
if ($this->values [$key] ['expires'] < time ()) {
unset ($this->values [$key]);
public function get($key)
{
if (isset($this->values [$key])) {
if ($this->values [$key] ['expires'] < time()) {
unset($this->values [$key]);
return null;
}
return $this->values [$key] ['value'];
}
else
} else {
return null;
}
}
}

$storage = new Storage ();

$server->on (Memcached::ON_GET,
function ($client_id, $key, &$value, &$flags, &$cas) use ($storage) {
echo "Getting key=[$key]" . PHP_EOL;
if (($value = $storage->get ($key)) != null)
return Memcached::RESPONSE_SUCCESS;
$storage = new Storage();

return Memcached::RESPONSE_KEY_ENOENT;
});
$server->on(
Memcached::ON_GET,
function ($client_id, $key, &$value, &$flags, &$cas) use ($storage) {
echo "Getting key=[$key]" . PHP_EOL;
if (($value = $storage->get($key)) != null) {
return Memcached::RESPONSE_SUCCESS;
}

$server->on (Memcached::ON_SET,
function ($client_id, $key, $value, $flags, $expiration, $cas, &$result_cas) use ($storage) {
echo "Setting key=[$key] value=[$value]" . PHP_EOL;
$storage->set ($key, $value, $expiration);
return Memcached::RESPONSE_SUCCESS;
});
return Memcached::RESPONSE_KEY_ENOENT;
}
);

$server->on(
Memcached::ON_SET,
function ($client_id, $key, $value, $flags, $expiration, $cas, &$result_cas) use ($storage) {
echo "Setting key=[$key] value=[$value]" . PHP_EOL;
$storage->set($key, $value, $expiration);
return Memcached::RESPONSE_SUCCESS;
}
);

$server->run ("127.0.0.1:3434");
$server->run("127.0.0.1:3434");
8 changes: 4 additions & 4 deletions server-example/set-get.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
$cache->setOption(Memcached::OPT_COMPRESSION, false);
$cache->addServer('localhost', 3434);

$cache->set ('set_key1', 'This is the first key', 10);
var_dump ($cache->get ('set_key1'));
$cache->set('set_key1', 'This is the first key', 10);
var_dump($cache->get('set_key1'));

$cache->set ('set_key2', 'This is the second key', 2);
var_dump ($cache->get ('set_key2'));
$cache->set('set_key2', 'This is the second key', 2);
var_dump($cache->get('set_key2'));
10 changes: 5 additions & 5 deletions server-example/test-server.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@
$cache->delete("delete_k");
$cache->flush(1);

var_dump ($cache->get ('get_this'));
var_dump($cache->get('get_this'));

$cache->set ('set_key', 'value 1', 100);
$cache->replace ('replace_key', 'value 2', 200);
$cache->set('set_key', 'value 1', 100);
$cache->replace('replace_key', 'value 2', 200);

$cache->getStats ();
$cache->getStats();

$cache->quit();
sleep (1);
sleep(1);