dbcached(http://code.google.com/p/dbcached/) 是一种memcached缓存持久化解决方案。

add()之后,会通过udp包发给nmdp存储

如果get()未命中,则向nmdp取回数据,写入memcached

问题描述

Memcache::get支持单个键和批量键获取:
string Memcache::get ( string key )
array Memcache::get ( array keys )

当使用 Memcache::get ( array keys ) 时,如果key未命中:
dbcached向nmdp取回数据后,所有键值均为keys中最后一个键值

例:

var_dump($memcache->get(array(‘20020410070133′,’20040410070111’)));

首次请求,键值值全部为最后一个键(20040410070111)的键值:

array

  '20020410070133' => string '郭蓉' (length=6)
  '20040410070111' => string '郭蓉' (length=6)

刷新之后,由于数据已经读入memcached,输出正常:

array
  '20020410070133' => string '张伟' (length=6)
  '20040410070111' => string '郭蓉' (length=6)

解决方案(临时)

get两次 :!

$memcache->get($keys);
return $memcache->get($keys);