php代码
header("Content-Type:image/jpeg");
$port = 7901;
$mem = new Memcached;
$mem->addServer('192.168.0.101', $port) or die("Could not connectd");
$fp = fopen("/home/kobeng/product.jpg", 'rb');
$f = fread($fp, filesize("/home/kobeng/product.jpg")); //二进制数据
fclose($fp);
echo md5($f)."\n";
$mem->set('product.jpg',$f);
echo md5($mem->get('product.jpg'))."\n";
注:这两个echo的md5都是
72400af1943810d9d4e867dab470cbf9
-----------------------------------------------------------------------------------
lua代码
fp = io.open("/home/kobeng/product.jpg")
product = fp:read("*a")
fp:close()
ngx.header["Content-Type"] = 'text/html'
ngx.say(ngx.md5(product))
imgServerObj:set("product.jpg",product)
local res, flags, err = imgServerObj:get("product.jpg")
ngx.say(ngx.md5(res))
ngx.exit(200)
这两个say的代码都是72400af1943810d9d4e867dab470cbf9
--------------------------------------------------------------------------------
如果php执行写入 ,用lua-resty-memcached进行读取,那么出来的两边的md5的值都不一样,如何解决呢?
On Tuesday, August 14, 2012 12:35:34 AM UTC+8, kobeng wrote:
我想讨论一下,php把图片[$f = fread($fp, filesize("/x.jpg"));]存入memcached,
然后用 lua-resty-memcached读出来后
[local res, flags, err = imgServerObj:get("x.jpg")],
用ngx.md5(res) 与php的md5($f)的值不一样
(注:本地没有图片服务器,我的图片器可以用memcached的协议访问的,所以本地用了memcached测试)