在 PHP 中,可以使用 Memcached 或 Redis 等内存缓存系统来实现局部缓存。
下面是一个使用 Memcached 来实现局部缓存的示例代码:
// 初始化 Memcached 对象,连接到本地的 Memcached 服务
$memcached = new Memcached();
$memcached->addServer("localhost", 11211);
// 缓存 key 为 "user_123" 的数据,缓存时间为 60 秒
$user_id = 123;
$user_data = array(
"name" => "John Doe",
"email" => "john.doe@example.com",
"phone" => "1234567890"
);
$cache_key = "user_" . $user_id;
$cache_time = 60;
if ($memcached->add($cache_key, $user_data, $cache_time)) {
echo "缓存成功";
} else {
echo "缓存失败";
}
// 从缓存中读取数据
if (($user_data = $memcached->get($cache_key)) === false) {
// 缓存失效或出错,从数据库中读取数据
$user_data = db_query("SELECT * FROM users WHERE id = ?", $user_id);
// 更新缓存
$memcached->set($cache_key, $user_data, $cache_time);
}
// 使用 $user_data
echo $user_data["name"];
在上述代码中,我们使用 Memcached
来连接到本地的 Memcached 服务,并将缓存 key 设置为 user_123
,缓存时间为 60 秒。在读取数据时,我们先尝试从缓存中读取数据,如果缓存失败或缓存已过期,再从数据库中查询数据。查询到数据后,更新缓存。这样,下次再次访问时,就可以直接从缓存中读取数据,避免了频繁读写数据库。