小结:

先启动memcached
然后启动magent

memcached -d -p 11211 -u memcached -m 64 -c 5120
memcached -d -p 11212 -u memcached -m 64 -c 5120
magent -u root -n 5120 -l 182.92.162.254 -p 12000 -s 182.92.162.254:11211 -b 182.92.162.254:11212 
magent -u root -n 5120 -l 182.92.162.254 -p 12001 -s 182.92.162.254:11212 -b 182.92.162.254:11211

安装依赖库

yum install libevent-devel libevent 

magent安装参见Memcached代理软件magent安装小结

magent -u root -n 51200 -l 127.0.0.1 -p 12000 -s 127.0.0.1:11211 -s 127.0.0.1:11212 -b 127.0.0.1:11213 
  • 1、分别在11211、11212、11213端口启动3个Memcached进程,在12000端口开启magent代理程序;
  • 2、11211、11212端口为主Memcached,11213端口为备份Memcached;

防止单点现象,对缓存代理也可以做备份,客户端连接到缓存代理服务器,缓存代理服务器连接多个缓存服务器,如:

  • Magent代理服务器:2台,分别为 192.168.1.2:12000、192.168.1.3:12000
  • Memcached主服务器:3台,分别为 192.168.1.4:11211、192.168.1.5:11211、192.168.1.6:11211
  • Memcached备服务器:2台,分别为 192.168.1.7:11211、192.168.1.8:11211

在 192.168.1.4-8 上分别编译安装并运行Memcached

在 192.168.1.2-3 上分别 编译安装 magent

magent命令

-h this message   -u uid   -g gid   -p port, default is 11211. (0 to disable tcp support)-s ip:port, set memcached server ip and port   -b ip:port, set backup memcached server ip and port   -lip, localbindip address, default is 0.0.0.0   -n number, set max connections, default is 4096最大连接数   -Ddo not go to background   -k use ketama key allocation algorithm   -ffile, unix socket path to listen on. default is off   -i number, max keep alive connections for one memcached server, default is 20-v verbose

在 192.168.1.2、192.168.1.3 上分别运行 magent(注意修改-l后的IP):

magent -u root -n 51200 -l 192.168.1.2 -p 12000 -s 192.168.1.4:11211 -s 192.168.1.5:11211 -s  

192.168.1.6:11211 -b 192.168.1.7:11211 -b 192.168.1.8:11211

以前,我们用PHP连接多台Memcached服务器,做分布式缓存时,参考代码如下:

$memcache=new Memcache;   $memcache->addServer('localhost',11211);   $memcache->addServer('localhost',11212);   $memcache->addServer('localhost',11213);   for($i=0;$i<1000;$i++)   {   	$memcache->set($i,$i,0,1000);   }

现在,连接的主机不是Memcached服务器了,而是 Magent代理服务器,给 addServer()方法传参时,传入的是Magent主机IP

与端口!测试代码如下:

$mem=new \Memcache();     $host='192.168.1.2';   $port='12000 ';   $mem->connect($host,$port);     $key1='elesos1';   $value1='1';   $mem->add($key1,$value1);       $key2='elesos2';   $value2='2';   $mem->add($key2,$value2);


如果出现连接不上,请检查IP是否正确!

说明:

  • 1、PHP连接magent,把缓存key1交给magent,magent根据自身的配置参数,再加上一定的哈希算法,会计算出key1存在3台主Memcached服务器的某一台上,然后以同样的算法,将key1也在2台备用的Memcached服务器中的某一台上,再存一份数据。

即,主服务器是分布式存储的,同时,从服务器也是分布式存储的;

  • 2、在PHP获取缓存数据key1时,magent一旦得知数据所存的那台主Memcached服务器挂掉了,它就会转向从备用的Memcached服务器中获取数据。注意:服务器的定位选择算法跟存的时候是一样的。
  • 3、有个缺陷,当 down 掉的那台主Memcached服务器重新恢复正常后,Memcahed里是没有数据的,即数据全部丢失,但此时备用的Memcached服务器又不会将数据同步到主服务器。
  • 4、可通过Memcached管理软件MemAdmin查看数据分布情况。

magent与memcached 是可以混搭的,不必死板的一个magent s-memcached s-memcached b-memcached

magent也可以连magent的。

Memcached重启复活后无数据,因此magent取得的将是空值,尽管备份Memcached还有数据。可采用定时维护服务器,恢复memcached。

[编辑]艺搜参考

http://blog.snsgou.com/post-800.html

http://zyan.cc/post/393/

http://www.cnblogs.com/happyday56/p/3461113.html

Memcached集群:Magent缓存代理使用的更多相关文章

  1. CentOS6.3编译安装Memcached集群分布式缓存代理Magent-0.6出错汇总

    参考文章:Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解,搭建Magent,在编译的过程中会出现很多错误: #编译安装安装magent到 /usr/local/mage ...

  2. Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解

    当网站访问量达到一定时,如何做Memcached集群,又如何高可用,是接下来要讨论的问题. 有这么一段文字来描述“Memcached集群” Memcached如何处理容错的? 不处理!:) 在memc ...

  3. Magent搭建Memcached集群

    原文地址:http://ultrasql.blog.51cto.com/9591438/1636374 Memcached集群介绍 由于Memcached服务器与服务器之间没有任何通讯,并且不进行任何 ...

  4. memcached+magent实现memcached集群

    首先说明下memcached存在如下问题 本身没有内置分布式功能,无法实现使用多台Memcache服务器来存储不同的数据,最大程度的使用相同的资源:无法同步数据,容易造成单点故障.(memagent代 ...

  5. [转]memcached+magent实现memcached集群

    From : http://www.cnblogs.com/happyday56/p/3461113.html 首先说明下memcached存在如下问题 本身没有内置分布式功能,无法实现使用多台Mem ...

  6. Ubuntu 16.04通过Magent搭建Memcached集群(转)

    一.下载Magent 官网:https://code.google.com/archive/p/memagent/downloads 离线版本:(链接: https://pan.baidu.com/s ...

  7. Mcrouter-基于Memcached协议的缓存层流量管理工具(Memcached集群的另一个选择)(转)

    Mcrouter 是一个基于Memcached协议的路由器,它是 Facebook缓存架构的核心组件,在峰值的时候,它能够处理每秒50亿次的请求.近日,Facebook开放了Mcrouter的源代码, ...

  8. memcached集群

    借鉴:http://www.cnblogs.com/happyday56/p/3461113.html 首先说明下memcached存在如下问题 本身没有内置分布式功能,无法实现使用多台Memcach ...

  9. Nginx+Tomcat+MemCached 集群配置手册

    系统实施文档 Nginx+Tomcat+MemCached 集群配置手册 目    录 第1章   概述 1.1   目标 互联网的快速发展带来了互联网系统的高负载和高可用性, 这要求我们在设计系统架 ...

  10. Memcached 集群架构与memcached-session-manager

    Memcached 集群架构方面的问题_知识库_博客园https://kb.cnblogs.com/page/69074/ memcached-session-manager配置 - 学习中间件调优管 ...

随机推荐

  1. HTML5基础知识汇总_(2)自己定义属性及表单新特性

    自己定义属性data-* 说起这个属性,事实上如今非经常见了;怎么说呢,由于在一些框架都能看到他的身影!!! 比方Jquery mobile,里面非常频繁的使用了这个属性; 这个属性是哪里来的-.当然 ...

  2. 手机端UC浏览器,在java开发的下载功能中存在的问题?

    在java web开发中,不同浏览器对下载文件的格式有不同的要求,有时会出现视频,音频等文件无法下载的问题.我在开发中,也遇到类似的问题,觉得很苦恼. 经过百度和请教学习,得到2个解决方案. 首先得到 ...

  3. UITextField,UITextView字数限制

    UITextField,UITextView字数限制 主要是使用他们的两个代理方法 //标题限制在 30个字以内 - (BOOL)textField:(UITextField *)textField ...

  4. Linux 静态链接库和动态连接库

    (0)文件夹 VMware 下安装Ubuntu的吐血经历 零基础学习Shell编程 Linux下的makefile的妙用 Linux调试神器 -- gdb 十分钟学会Python的基本类型 Linux ...

  5. 11g OCM 考试感悟

    11g OCM 考试感悟 PrudentWoo 累,累.真的很累.考前每天全场景的刷两遍.三遍不觉得累.总感觉练习时间不够.考中尽管时间足够.可是压力很大.尤其看到一些和平时训练不一样题目的时候,那种 ...

  6. 如何为iTunes Connect准备应用

    原地址:http://blog.sina.com.cn/s/blog_947c4a9f0101dded.html 如果你已经成功注册了iOS开发者,那么现在就可以登陆iTunes Connect来管理 ...

  7. Unity3D Gamecenter 得分上传失败的处理

    Unity3DGamecenter 得分上传失败的处理. 常常会有种情况是,玩家在地铁或者飞机上没法通过wifi或者3G连接到服务器,从而会导致上传分数失败 解决方法: 这时候需要把得分存在Playe ...

  8. 更新node版本

    步骤如下:1.查看当前的node版本 node -v 2.清除npm当前缓存信息 npm cache clean -f 3.执行下载node npm install -g n 4.下载成功后执行安装 ...

  9. vs2005下面编译自己的luars232.dll

    vc6在win7下用不了,大家建议使用vs2005...所以就装了,但是还是提示有不兼容,不过是可以用的.先凑合用,装了个2012,庞然大物!而且折腾了半天不知所云.先这样吧. 简单记录操作过程,参考 ...

  10. [Exception Android 19] - android.widget.HeaderViewListAdapter.isEnabled

    java.lang.IndexOutOfBoundsException: Invalid index , size at java.util.ArrayList.throwIndexOutOfBoun ...