Memcache는 일반적으로 사용되는 데이터를 메모리에 저장할 수있는 고속 분산 메모리 객체 캐시 시스템으로 시스템 데이터의 읽기 효율을 크게 향상시킵니다. PHP 개발자의 경우 데이터 캐싱 및 업데이트에 Memcache를 사용하는 것이 매우 효과적인 성능 최적화 방법입니다. 이 기사에서는 PHP 개발에서 효율적인 Memcache 캐시 및 업데이트를 구현하는 방법을 보여줍니다.
PHP에서 Memcache를 사용하려면 먼저 Memcache 확장을 설치하고 구성해야합니다. 이 기사는 Memcache의 설치 프로세스를 보여주기 위해 CentOS 시스템을 예제로 사용합니다.
sudo yum install memcached
sudo yum install php-pecl-memcache
설치가 완료되면 Memcache를 구성해야합니다. /etc/sysconfig/memcached 파일을 열고 다음 내용을 수정하십시오.
OPTIONS="-l 127.0.0.1 -p 11211"
이 구성 후 Memcache는 로컬 IP 주소에 묶여 포트 11211을 듣습니다. 구성을 저장 한 후 Memcache 서비스를 시작하십시오.
sudo service memcached start
Memcache 서비스에 연결하는 것은 매우 간단합니다. Memcache 클래스를 통해 연결할 수 있습니다.
$memcache = new Memcache();
$memcache->connect('127.0.0.1', 11211);
연결이 성공하면 Memcache가 제공 한 메소드를 캐시 및 업데이트 데이터를 업데이트 할 수 있습니다.
Get 메소드를 사용하여 Memcache에서 데이터를 얻습니다. 데이터가 존재하지 않으면 false를 반환합니다.
$data = $memcache->get($key);
if ($data !== false) {
// 데이터가 존재합니다,해당 작업을 수행하십시오
}
삭제 방법을 사용하여 Memcache에서 데이터를 삭제하십시오. 데이터가 존재하지 않으면 false를 반환합니다.
$deleted = $memcache->delete($key);
if (!$deleted) {
// 데이터가 존재하지 않습니다,해당 작업을 수행하십시오
}
교체 방법을 사용하여 Memcache의 데이터를 교체하십시오. 데이터가 존재하지 않으면 false를 반환합니다.
$replaced = $memcache->replace($key, $newData);
if (!$replaced) {
// 데이터가 존재하지 않습니다,해당 작업을 수행하십시오
}
추가 메소드를 사용하여 Memcache에 새 데이터를 추가하십시오. 데이터가 이미 존재하면 False를 반환합니다.
$added = $memcache->add($key, $data);
if (!$added) {
// 데이터가 이미 존재합니다,해당 작업을 수행하십시오
}
감소 방법을 사용하여 Memcache의 데이터 값을 줄입니다. 데이터가 존재하지 않으면 false를 반환합니다.
$value = $memcache->decrement($key, $amount);
if ($value === false) {
// 데이터가 존재하지 않습니다,해당 작업을 수행하십시오
}
증분 방법을 사용하여 Memcache의 데이터 값을 높이십시오. 데이터가 존재하지 않으면 false를 반환합니다.
$value = $memcache->increment($key, $amount);
if ($value === false) {
// 데이터가 존재하지 않습니다,해당 작업을 수행하십시오
}
다음은 데이터베이스 결과를 Memcache로 캐시하고 캐시에서 데이터를 읽는 방법을 보여주는 간단한 예입니다. 캐시에 데이터가 존재하지 않으면 데이터베이스에서 가져옵니다.
// 데이터베이스에 연결하십시오
$db = new mysqli('localhost', 'user', 'password', 'database');
$result = $db->query('SELECT * FROM my_table');
// 캐시 데이터베이스 결과,캐시 시간은입니다1시간
$key = 'my_table_result';
$memcache->set($key, $result, MEMCACHE_COMPRESSED, 3600);
// ~에서Memcache데이터를 얻으십시오
$cachedResult = $memcache->get($key);
if ($cachedResult === false) {
// 데이터가 존재하지 않습니다,~에서数据库中获取
$cachedResult = $db->query('SELECT * FROM my_table');
}
// 처리 데이터
while ($row = $cachedResult->fetch_assoc()) {
// 각 데이터 행을 처리합니다
}
이 기사에 설명 된 방법을 통해 PHP 프로젝트의 데이터 캐싱 및 업데이트에 Memcache를 효율적으로 사용할 수 있습니다. Memcache는 특히 동시성이 높은 시나리오에서 시스템의 성능을 효과적으로 향상시킬 수 있습니다. 비즈니스 요구에 따라 캐싱 전략을 조정하여 성능을 최적화 할 수 있습니다.