Memcached¶
服务概述¶
Memcached 是一个高性能的分布式内存对象缓存系统,可以用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
Memcached 主要的使用场景有以下两个:
- 需要共享某些 Key-Value 形式的小数据时。(因为新浪云的 Web 服务是分布式环境,所以使用全局变量方式等方式是不行的)。
- 缓存 MySQL 等后端存储的数据。快速进行数据响应,减轻后端存储的压力,同时,还可以为这些缓存数据指定过期时间。
Memcached 的实现决定了缓存的数据不是永久有效的,因此应用程序必须有针对 Memcached 失效时的向后端存取数据的重试方案。
您可以在应用管理面板的『存储与 CDN /Memcached 』中创建 Memcached,然后在应用中通过 API 读写 Memcached。
注解
Memcached 不适合存放大文件,目前仅允许存放小于 1MB 的数据。
使用示例¶
<?php
//使用本应用Memcache
$mmc = new Memcached();
if ($mmc == false) {
echo "mc init failed\n";
} else {
$mmc->set("key", "value");
echo $mmc->get("key");
}
?>
PHP7.0及以上版本跨应用授权¶
假定将应用A授权给B使用,需要从“应用设置” - “跨应用授权”,将A的服务授权给B使用。在应用B操作memcached时,使用A的accesskey连接。
<?php
//使用应用A的accesskey
$mmc = new Memcached("accesskey");
if ($mmc == false) {
echo "mc init failed\n";
} else {
$mmc->set("key", "value");
echo $mmc->get("key");
}
?>
PHP5.3/5.6跨应用授权¶
假定将应用A授权给B使用,需要从“应用设置” - “跨应用授权”,将A的服务授权给B使用。在应用B操作memcached时,使用A的accesskey连接。
<?php
//使用应用A的accesskey
$mmc = memcache_init($accesskey);
if ($mmc == false) {
echo "mc init failed\n";
} else {
memcache_set($mmc, 'key', 'value', 0, 30);
echo memcache_get($mmc, "key");
}
?>