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配置 - 学习中间件调优管 ...
随机推荐
- ESLint:can not ESLint annotation...
刚开始用webstorm开发VUE,提示这个东西: 安装一个npm库就可以了 命令行执行:npm install eslint -g
- STL 源代码剖析 算法 stl_algo.h -- next_permutation
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie next_permutation ----------------------------- ...
- 更改Mysql数据库存储位置
默认安装位置 C:\Program Files\MySQL\MySQL Server 5.7 一.首先把mysql的服务先停掉. 二.更改MySQL配置文件My.ini中的数据库存储主路径 打开MyS ...
- [Algorithom] Shuffle an array
Shuffling is a common process used with randomizing the order for a deck of cards. The key property ...
- spock spring 集成测试框架搭建心得
转载:http://blog.csdn.net/hankle_xu/article/details/77531880 spock测试框架,使用groovy作为脚本语言,开发出的测试脚本具有优良的阅读性 ...
- ssm整合(Spring+SpringMVC+Mybatis)
一.Spring Spring致力于提供一种方法管理你的业务对象.IOC容器,它可以装载bean(也就是我们java中的类,当然也包括service dao里面的),有了这个机制,我们就不用在每次使用 ...
- WinServer 之 内网发布网站后端口映射外网访问
内网IP只能在内网局域网访问连接,在外网是不能认识内网IP不能访问的.如有路由权限,且路由有固定公网IP,可以通过路由的端口映射,实现外网访问内网.如无路由,或路由无公网IP,需要用到第三方开放的花生 ...
- AFNetworking 文件上传Data,File图片,文件等上传
一:AFNetworking的文件上传: 主要几个以下类似 - (BOOL)appendPartWithFileURL:(NSURL *)fileURL name:(NSString *)name e ...
- vue - src(assets和static)
描述:这里存放一些本地资源(images.css.js). assets:开发服务器(dev Server时引用的临时路径) static:静态资源存放(build Server).
- h5移动端百分比
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...