Memcached 教程学习笔记
什么是 Memcached
Memcached 是一个自由开源的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它是一种基于键值对的缓存系统,可以将常用的数据存储在内存中,以加快访问速度。
Memcached 的使用
安装和配置
在 Ubuntu 系统上,可以通过以下命令来安装 Memcached:
bashCopy Codesudo apt-get update sudo apt-get install memcached
安装完成后,可以编辑 /etc/memcached.conf
文件来配置 Memcached。其中常用的配置项包括监听地址、监听端口、最大内存限制等。
命令行使用
可以使用 telnet
命令连接到 Memcached 服务器,并输入相关命令来进行操作。
例如,可以使用 set
命令来设置键值对:
Copy Codeset mykey 0 60 5
hello
STORED
其中,mykey
是键名,0
是标记值,60
是过期时间(以秒为单位),5
是数据长度,hello
是具体的数据内容。
接着,可以使用 get
命令来获取键值对:
Copy Codeget mykey
VALUE mykey 0 5
hello
END
PHP 中使用
在 PHP 中,可以通过 Memcached
扩展来使用 Memcached。
连接到服务器
phpCopy Code$memcached = new Memcached();
$memcached->addServer('127.0.0.1', 11211);
设置和获取数据
phpCopy Code$memcached->set('mykey', 'hello', 60);
$value = $memcached->get('mykey');
示例
以下示例演示了如何在 PHP 中使用 Memcached 缓存数据库查询结果,以减轻数据库负载:
phpCopy Code$memcached = new Memcached();
$memcached->addServer('localhost', 11211);
$key = 'user_list';
$result = $memcached->get($key);
if ($result !== false) {
// 从缓存中获取到数据,直接返回
return unserialize($result);
} else {
// 查询数据库,并将结果存入缓存
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$stmt = $pdo->prepare('SELECT * FROM `user`');
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
$memcached->set($key, serialize($data), 3600);
return $data;
}
以上代码首先尝试从 Memcached 缓存中获取查询结果,如果没有缓存则查询数据库,并将查询结果存入缓存,以便下次查询时直接返回缓存中的结果。这样可以减轻数据库的负载,提高网站的响应速度。
总结
以上是关于 Memcached 的学习笔记和示例,在动态Web应用中,使用 Memcached 可以有效减轻数据库负载,提高网站的访问速度。