pecl install memcache
安装完成后,需要在PHP配置文件(php.ini)中启用Memcache扩展。打开php.ini文件并添加以下代码:
extension=memcache.so
然后,重启Web服务器以使配置生效。
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211);
这里,'127.0.0.1'是Memcache服务器的IP地址,11211是Memcache默认端口号。根据需要,修改为实际的服务器地址和端口。
缓存数据:
$data = '緩存的數據';
$key = 'cache_key';
$expiration = 3600; // 緩存過期時間,單位為秒
$memcache->set($key, $data, 0, $expiration);
在这个例子中,我们将字符串 '缓存的数据' 存储在键名为 'cache_key' 的缓存中,并设置过期时间为3600秒(即1小时)。
获取缓存数据:
$key = 'cache_key';
$data = $memcache->get($key);
if ($data === false) {
// 數據不存在,重新生成數據並存儲到緩存
$data = generate_data();
$memcache->set($key, $data, 0, $expiration);
}
如果缓存数据存在,直接获取;如果不存在,则重新生成数据并将其缓存。
删除缓存数据:
$key = 'cache_key';
$memcache->delete($key);
通过指定键名,可以从缓存中删除指定的数据。
压缩数据:
$data = '大量數據';
$key = 'cache_key';
$expiration = 3600;
$memcache->set($key, gzcompress($data), MEMCACHE_COMPRESSED, $expiration);
通过使用 gzcompress 函数,您可以压缩数据进行存储,从而减少数据传输时的网络负担。
使用CAS(Check-And-Set)操作:
$key = 'cache_key';
$cas = 0;
$data = $memcache->get($key, null, $cas);
// 修改數據
$data['field'] = '新值';
// 通過比較之前獲取到的$cas值,進行CAS操作
$memcache->cas($cas, $key, $data, 0, $expiration);
CAS操作帮助避免了并发修改缓存数据时的竞争条件,从而确保数据的一致性。