PHP 函数:使用 Memcached 缓存数据库查询结果
以下是一个 PHP 函数,作用是查询数据库并使用 Memcached 缓存:
function get_data_from_db($key) {
$memcache = new Memcached();
$memcache->addServer('localhost', 11211);
$data = $memcache->get($key);
if ($data) {
return $data;
}
$db = new mysqli('localhost', 'username', 'password', 'database_name');
if ($db->connect_errno) {
return null;
}
$stmt = $db->prepare('SELECT * FROM table_name WHERE key = ?');
$stmt->bind_param('s', $key);
$stmt->execute();
$result = $stmt->get_result();
$data = null;
if ($result->num_rows > 0) {
$data = $result->fetch_assoc();
$memcache->set($key, $data, 3600); // 缓存1小时
}
$stmt->close();
$db->close();
return $data;
}
以上函数的实现过程如下:
- 首先,创建一个 Memcached 对象,并添加 memcached 服务器的地址和端口号。
- 然后,尝试从 Memcached 中获取指定的数据。如果存在,则直接返回数据。
- 如果 Memcached 中不存在数据,则连接数据库,并执行查询操作,获取数据。
- 如果查询结果中有数据,则将其存储到 Memcached 中,并设置过期时间为 1 小时。
- 最后,关闭数据库连接,返回数据。
使用该函数时,只需要传入需要查询的数据的键值,函数会自动从缓存或数据库中获取数据并返回。例如:
$data = get_data_from_db('some_key');
if ($data) {
// 处理数据
} else {
// 数据不存在
}
原文地址: https://www.cveoy.top/t/topic/mFfs 著作权归作者所有。请勿转载和采集!