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://www.cnblogs.com/happyday56/p/3461113.html
Memcached集群:Magent缓存代理使用的更多相关文章
- CentOS6.3编译安装Memcached集群分布式缓存代理Magent-0.6出错汇总
参考文章:Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解,搭建Magent,在编译的过程中会出现很多错误: #编译安装安装magent到 /usr/local/mage ...
- Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解
当网站访问量达到一定时,如何做Memcached集群,又如何高可用,是接下来要讨论的问题. 有这么一段文字来描述“Memcached集群” Memcached如何处理容错的? 不处理!:) 在memc ...
- Magent搭建Memcached集群
原文地址:http://ultrasql.blog.51cto.com/9591438/1636374 Memcached集群介绍 由于Memcached服务器与服务器之间没有任何通讯,并且不进行任何 ...
- memcached+magent实现memcached集群
首先说明下memcached存在如下问题 本身没有内置分布式功能,无法实现使用多台Memcache服务器来存储不同的数据,最大程度的使用相同的资源:无法同步数据,容易造成单点故障.(memagent代 ...
- [转]memcached+magent实现memcached集群
From : http://www.cnblogs.com/happyday56/p/3461113.html 首先说明下memcached存在如下问题 本身没有内置分布式功能,无法实现使用多台Mem ...
- Ubuntu 16.04通过Magent搭建Memcached集群(转)
一.下载Magent 官网:https://code.google.com/archive/p/memagent/downloads 离线版本:(链接: https://pan.baidu.com/s ...
- Mcrouter-基于Memcached协议的缓存层流量管理工具(Memcached集群的另一个选择)(转)
Mcrouter 是一个基于Memcached协议的路由器,它是 Facebook缓存架构的核心组件,在峰值的时候,它能够处理每秒50亿次的请求.近日,Facebook开放了Mcrouter的源代码, ...
- memcached集群
借鉴:http://www.cnblogs.com/happyday56/p/3461113.html 首先说明下memcached存在如下问题 本身没有内置分布式功能,无法实现使用多台Memcach ...
- Nginx+Tomcat+MemCached 集群配置手册
系统实施文档 Nginx+Tomcat+MemCached 集群配置手册 目 录 第1章 概述 1.1 目标 互联网的快速发展带来了互联网系统的高负载和高可用性, 这要求我们在设计系统架 ...
- Memcached 集群架构与memcached-session-manager
Memcached 集群架构方面的问题_知识库_博客园https://kb.cnblogs.com/page/69074/ memcached-session-manager配置 - 学习中间件调优管 ...
随机推荐
- Android的四大天王
Android 四大天王 1.Activity 2.Intent Receiver 3.Service 4.Content Provider 但是,并不是每一个Android应用程序都需要这四种 ...
- 细说linux IPC(一):基于socket的进程间通信(上)
[版权声明:尊重原创.转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途] 在一个较大的project其中 ...
- windows域相关
查看域角色: netdom query fsmo
- 06-spring学习-自动装配
自动装配前面也有写过.这里只做补充 在之前,对于要引用的属性,都必须写上名称, 原始配置: 当要在emp对象里面引用dept对象的时候,需要明确的使用“ref“属性去找到指定的名称,但是这种操作中也可 ...
- Hibernate配置C3P0连接池
引入C3PO包 在hibernate.cfg.xml文件中配置 <!-- 数据库连接池的使用 --> <!-- 选择使用C3P0连接池 --> <property nam ...
- 捕获海康威视IPCamera图像,转成OpenCV能够处理的图像(一)
海康威视IPCamera图像捕获 捕获海康威视IPCamera图像,转成OpenCV能够处理的IplImage图像(一) 捕获海康威视IPCamera图像.转成OpenCV能够处理的IplImage图 ...
- Leetcode Find Minimum in Rotated Sorted Array 题解
Leetcode Find Minimum in Rotated Sorted Array 题目大意: 对一个有序数组翻转, 就是随机取前K个数,移动到数组的后面,然后让你找出最小的那个数.注意,K有 ...
- 将XML格式的字符串封装成DOM对象
在java端将字符串转化为xml对象可以使用DocumentHelper.parseText(xmlReturn).getRootElement(); 在js中同样有方法可以将字符串转化为xml对象, ...
- 聚合类新闻client的改进
zaker和鲜果是最早的聚合类新闻产品.前几年发展非常快.迅速占据了市场,但近两年发展变得缓慢.而今日头条自公布以来才两年.用户量就迅速超过了zaker和鲜果.使用起来非常easy,左右滑动 ...
- ASDASASD
测试 markdown 随笔 asdsdf sdf