注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

勇敢的劳尤条

 
 
 

日志

 
 

libmemcached——C++使用测试  

2014-07-11 14:45:22|  分类: 网络编程知识积累 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
强烈建议阅读源代码:<libmemcached/memcached.hpp>,接口十分详细。
第一步首先开启两个memcached

memcached -l 127.0.0.1:11211 -d

memcached -l 127.0.0.1:11311 -d
安装和命令介绍看http://yuanshuilee.blog.163.com/blog/static/217697275201461185145906/

第二步是测试代码

#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <libmemcached/memcached.hpp>
using namespace std;
using namespace memcache;
int main()
{
Memcache mmc;
mmc.addServer("localhost",11311);
mmc.addServer("localhost",11211);
vector<char> vcc;
stringstream ss;
for(int i=1000;i<1006;i++)
{
ss.str("");
ss << i;
string key(ss.str());
string value("value:"+ss.str());
vcc.assign(value.begin(), value.end());
if(mmc.set(key,vcc,0,0))
{
cout<<"success"<<endl;
}
}
return 0;
}

第三步是查看数据
libmemcached——C++使用测试 - yuanshuilee - 勇敢的劳尤条
 
从这里再回过头去理解memcached的工作方式
        Memcached的神奇来自两阶段哈希(two-stage hash)。Memcached就像一个巨大的、存储了很多<key,value>对的哈希表。通过key,可以存储或查询任意的数据。
  客户端可以把数据存储在多台memcached上。当查询数据时,客户端首先参考节点列表计算出key的哈希值(阶段一哈希),进而选中一个节点;客户端将请求发送给选中的节点,然后memcached节点通过一个内部的哈希算法(阶段二哈希),查找真正的数据(item)。

当其中一台memcached挂掉怎么办呢?
同样是上述代码,但是11311端口的memcached关闭,那么运行结果又如何呢?
结果显示 ,数据的设置有三个失败了,而三个成功了,其存储的结果与上述一致。
另外也表示:memcached并不做冗余,如果系统死机,那么缓存数据将消失。于是,应用服务器只好去数据库读取数据,然后由其他memcached接管,重新做缓存!(不建议导入)

说明:memcached

【参考资料】
  评论这张
 
阅读(273)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017