《高性能 Linux 服务器构建实战:运维监控、性能调优与集群应用》
机械工业出版社出版发行
servers => ["127.0.0.1:11211"],
compress_threshold => 100
});
$memcached->add($key, $value, $expires);
my $return = $memcached->get($key);
print "$return\n";
Cache::Memcached 的常用选项如下:
servers ,用数组指定连接 Memcached 服务器的 IP 地址和端口号
compress_threshold, 启用数据压缩时使用的值
namespace,指定添加到键的前缀
另外,利用 Cache::Memcached 可以将 Perl 的复杂数据序列化之后再保存,所以能直接
将散列、数组、对象都保存到 Memcached 的缓存中。
1.向 Memcached 存数据的方法
向 Memcached 存数据的方法有 set、add 和 replace,这些方法的使用方式相同:
my $add = $memcached->add( ‘键', ‘值', '过期时间' );
my $replace = $memcached->replace( '键', ‘值', '过期时间' );
my $set = $memcached->set( '键', '值', ‘过期时间' );
向 Memcached 存数据时可以指定过期时间(秒),若不指定过期时间时,Memcached 则
按照 LRU 算法保存存入的数据。但这三个方法有一些区别:
set , 无论在什么情况下都保存写入的数据
add ,仅当存储空间中不存在 key 相同的数据时才保存
replace ,仅当存储空间中存在 key 相同的数据时才保存
2.获取数据的方法
可以使用 get 和 get_multi 方法来获取数据,使用方法如下所示:
my $value = $memcached->get(‘键');
my $value = $memcached->get_multi(‘键 1', '键 2', ‘键 3');
如果想一次获取多条数据,可以使用 get_multi 方法。利用 get_multi 方法可以非同步地
同时取得多个键值,其速度要比循环调用 get 方法快很多倍。
3.删除数据方法
删除数据可以使用 delete 方法:
$memcached->delete('键', '阻塞时间(秒)');
第一个参数指定要删除的数据的键。第二个参数指定一个时间值,以禁止使用同样的键
保存新数据,这个功能可以防止缓存数据的不完整。但是 set 方法忽视该阻塞,会继续保存
数据。