memcached是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用。这是一套开放源代码软件,以BSD license授权发布。
memcached缺乏认证以及安全管制,这代表应该将memcached
memcached的API使用三十二比特的循环冗余校验(CRC-32)计算键值后,将数据分散在不同的机器上。当表格满了以后,接下来新增的数据会以LRU机制替换掉。由于memcached通常只是当作缓存系统使用,所以使用memcached的应用程序在写回较慢的系统时(像是后端的数据库)需要额外的代码更新memcached内的数据。
PHP获取Memcached的cas_token,php官方提供的方法代码
$ips = $m->get('ip_block', null, $cas);
按照php官方文档提供的代码来获取cas_token,结果$cas始终是null,查了好久,原来php5和php7中获取cas_token的方式是不同的
php5的方法
$ips = $m->get('ip_block', null, $cas);
var_dump($cas);
php7的方法
$_val = $m->get('ip_block', null, Memcached::GET_EXTENDED);
var_dump($_val['cas']);
做个判断
$cas = null;
if (defined(Memcached::GET_EXTENDED)){
$_val = $m->get('ip_block', null, Memcached::GET_EXTENDED);
$cas = $_val['cas'];
} else {
$ips = $m->get('ip_block', null, $cas);
}
var_dump($cas);