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);