Memcached
- 简介
- 安装/配置
- 预定义常量
- 超时时间
- 回调
- Sessions支持
- Memcached — Memcached 类
- Memcached::add — 向新 key 添加元素
- Memcached::addByKey — 在特定服务器上向新 key 添加元素
- Memcached::addServer — 向服务器池增加服务器
- Memcached::addServers — 向服务器池中增加多台服务器
- Memcached::append — 向已存在元素追加数据
- Memcached::appendByKey — 向指定服务器上已存在元素追加数据
- Memcached::cas — 比较并交换值
- Memcached::casByKey — 在指定服务器上比较并交换值
- Memcached::__construct — 创建 Memcached 实例
- Memcached::decrement — 减小数值元素的值
- Memcached::decrementByKey — Decrement numeric item's value, stored on a specific server
- Memcached::delete — 删除元素
- Memcached::deleteByKey — 从指定的服务器删除元素
- Memcached::deleteMulti — Delete multiple items
- Memcached::deleteMultiByKey — Delete multiple items from a specific server
- Memcached::fetch — 读取下一个结果
- Memcached::fetchAll — 读取所有剩余结果
- Memcached::flush — 作废缓存中的所有元素
- Memcached::get — 检索元素
- Memcached::getAllKeys — Gets the keys stored on all the servers
- Memcached::getByKey — 从特定的服务器检索元素
- Memcached::getDelayed — 请求多个元素
- Memcached::getDelayedByKey — 从指定的服务器上请求多个元素
- Memcached::getMulti — 检索多个元素
- Memcached::getMultiByKey — 从特定服务器检索多个元素
- Memcached::getOption — 获取 Memcached 的选项值
- Memcached::getResultCode — 返回最后一次操作的结果代码
- Memcached::getResultMessage — 返回最后一次操作的结果描述消息
- Memcached::getServerByKey — 获取一个 key 所映射的服务器信息
- Memcached::getServerList — 获取服务器池中的服务器列表
- Memcached::getStats — 获取服务器池的统计信息
- Memcached::getVersion — 获取服务器池中所有服务器的版本信息
- Memcached::increment — 增加数值元素的值
- Memcached::incrementByKey — Increment numeric item's value, stored on a specific server
- Memcached::isPersistent — Check if a persitent connection to memcache is being used
- Memcached::isPristine — Check if the instance was recently created
- Memcached::prepend — 向一个已存在的元素前面追加数据
- Memcached::prependByKey — 在指定服务器上追加数据到已存在的元素
- Memcached::quit — 关闭所有打开的链接
- Memcached::replace — 替换已存在 key 下的元素
- Memcached::replaceByKey — 在指定服务器上,替换已存在 key 下的元素
- Memcached::resetServerList — Clears all servers from the server list
- Memcached::set — 存储一个元素
- Memcached::setByKey — 将元素存储到指定的服务器上
- Memcached::setEncodingKey — Set AES encryption key for data in Memcached
- Memcached::setMulti — 存储多个元素
- Memcached::setMultiByKey — 在指定服务器存储多个元素
- Memcached::setOption — 设置一个 memcached 选项
- Memcached::setOptions — Set Memcached options
- Memcached::setSaslAuthData — Set the credentials to use for authentication
- Memcached::touch — Set a new expiration on an item
- Memcached::touchByKey — Set a new expiration on an item on a specific server
- MemcachedException — MemcachedException类
+添加备注
用户贡献的备注 4 notes
joelhy ¶
13 years ago
For those confuse about the memcached extension and the memcache extension, the short story is that both of them are clients of memcached server, and the memcached extension offer more features than the memcache extension.
gabriel dot maybrun at demandmedia dot com ¶
10 years ago
GOTCHA: Recently I was tasked with moving from PECL memcache to PECL memcached and ran into a major problem -- memcache and memcached serialize data differently, meaning that data written with one library can't necessarily be read with the other library.
For example, If you write an object or an array with memcache, it's interpreted as an integer by memcached. If you write it with memcached, it's interpreted as a string by memcache.
tl;dr - You can't safely switch between memcache and memcached without a either a cache flush or isolated cache environments.
<?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'));
}
}
Moradnejad ¶
4 years ago
## Installing Memcached on Ubuntu
To install Memcached on Ubuntu, go to terminal and type the following commands −
$sudo apt-get update
$sudo apt-get install memcached
## Confirming Memcached Installation
To confirm if Memcached is installed or not, you need to run the command given below. This command shows that Memcached is running on the default port 11211.
$ps aux | grep memcached
To run Memcached server on a different port, execute the command given below. This command starts the server on the TCP port 11111 and listens on the UDP port 11111 as a daemon process.
$memcached -p 11111 -U 11111 -u user -d
You can run multiple instances of Memcached server through a single installation.
davidt ¶
12 years ago
The module also supports SASL authentication, it just isn't documented sadly. You'll need to run the following code:
<?php
$m = new Memcached();
$m->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
$m->setSaslAuthData("user-1", "pass");
?>
You need to enable the "memcached.use_sasl = 1" ini option for memcached in the php.ini file.