memcahce添加服务器,实现集群
2016-08-05 09:56
204 查看
Memcache的资料我就不详述了,如果不知道,可以看:memcache笔记
想要实现memcache的集群,当然前提就是编译环境安装好,memcache安装好,这就不说了。
下面就直接进入主题:
代码及注释:
把k1 k2 k3放到11211端口还是9999端口还是9998端口,
有$mem对象本身操作 hash/sha1/md5等算法,来操作,
不用我们操心;
memcache的内部有设定的算法,来分配存储数据。
这样就懂了吧!
浏览器效果图:
![](http://img.blog.csdn.net/20160805094111277?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
那么,存取完了,我们有了一个新的问题:我们用memcache服务一般在项目中,
不可能只是在一个单页面使用,那么在另外的页面怎么取值呢
代码及注释:
浏览器效果图:
![](http://img.blog.csdn.net/20160805094237386?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
当然,那个貌似报错的东东,如果觉得碍事的话,能不能去掉呢,当然可以,我提供一种方式:
效果图:
![](http://img.blog.csdn.net/20160805100024975?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这时候,是不是又有了新的疑问,加入好几个服务器,会不会很浪费很多资源,
加大服务器的压力,不着急,这个方法已经给我们解释清楚了;
Memcache::addServer()增加一个服务器到连接池中。通过Memcache::addServer() 打开的连接将会在脚本执行结束后自动关闭,也可以使用Memcache::close()进行手动关闭。
您也可以使用memcache_add_server()来添加服务器。
当使用这个方法的时候(与Memcache::connect()和Memcache::pconnect()相反)
网络连接并不会立刻建立,而是直到真正使用的时候才建立。 因此在加入大量服务器到连接池中时也是没有开销的,因为它们可能并不会被使用。
好了,完成了,是不是很简单呢?
想要实现memcache的集群,当然前提就是编译环境安装好,memcache安装好,这就不说了。
下面就直接进入主题:
代码及注释:
mem1.php /* memcached 添加服务器 实现集群 */ $mem=new Memcache; //$mem->connect('localhost', 11211); //不用这个连接 //添加两个端口分别为11211 9999 9998的服务器 $mem->addServer('127.0.0.1',11211); $mem->addServer('127.0.0.1',9999); $mem->addServer('127.0.0.1',9998); /* Memcache::addServer()增加一个服务器到连接池中。 通过Memcache::addServer() 打开的连接将会在脚本执行结束后自动关闭, 也可以使用Memcache::close()进行手动关闭。 您也可以使用memcache_add_server()来添加服务器。 */ echo $mem->set('k1','haha',0,0)?'存储k1 ok':'error_k1'; echo $mem->set('k2','nihao',0,0)?'存储k2 ok':'error_k2';; echo $mem->set('k3','test',0,0)?'存储k3 ok':'error_k3';; echo "<hr>"; echo $mem->get('k1')."<br>"; echo $mem->get('k2')."<br>"; echo $mem->get('k3')."<br>"; ?>那么,memcacahe是如何知道存储到哪个服务器上的呢?
把k1 k2 k3放到11211端口还是9999端口还是9998端口,
有$mem对象本身操作 hash/sha1/md5等算法,来操作,
不用我们操心;
memcache的内部有设定的算法,来分配存储数据。
这样就懂了吧!
浏览器效果图:
那么,存取完了,我们有了一个新的问题:我们用memcache服务一般在项目中,
不可能只是在一个单页面使用,那么在另外的页面怎么取值呢
代码及注释:
<?php header('content-type:text/html;charset=utf8 '); //创建mem2.php /* memcached 添加服务器 实现集群 */ $mem=new Memcache; //$mem->connect('localhost', 11211); //不用这个连接 //把刚才的几个添加服务器的连接 粘贴过来 $mem->addServer('127.0.0.1',11211); $mem->addServer('127.0.0.1',9999); $mem->addServer('127.0.0.1',9998); //然后,直接该怎么取怎么取就行了,它会自动识别 echo $mem->get('k1')."<br>"; echo $mem->get('k2')."<br>"; echo $mem->get('k3')."<br>"; ?>
浏览器效果图:
当然,那个貌似报错的东东,如果觉得碍事的话,能不能去掉呢,当然可以,我提供一种方式:
echo @$mem->set('k1','haha1',0,0)?'存储k1 ok':'error_k1'; echo @$mem->set('k2','nihao1',0,0)?'存储k2 ok':'error_k2';; echo @$mem->set('k3','test1',0,0)?'存储k3 ok':'error_k3';; echo "<hr>"; echo @$mem->get('k1')."<br>"; echo @$mem->get('k2')."<br>"; echo @$mem->get('k3')."<br>"; //在存、取的时候加上@符号,就可以屏蔽掉
效果图:
这时候,是不是又有了新的疑问,加入好几个服务器,会不会很浪费很多资源,
加大服务器的压力,不着急,这个方法已经给我们解释清楚了;
Memcache::addServer()增加一个服务器到连接池中。通过Memcache::addServer() 打开的连接将会在脚本执行结束后自动关闭,也可以使用Memcache::close()进行手动关闭。
您也可以使用memcache_add_server()来添加服务器。
当使用这个方法的时候(与Memcache::connect()和Memcache::pconnect()相反)
网络连接并不会立刻建立,而是直到真正使用的时候才建立。 因此在加入大量服务器到连接池中时也是没有开销的,因为它们可能并不会被使用。
好了,完成了,是不是很简单呢?
相关文章推荐
- 负载均衡--大型在线系统实现的关键(下篇)(服务器集群架构的设计与选择)
- Linux 服务器集群系统实现方案详解
- 负载均衡--大型在线系统实现的关键(下篇)(服务器集群架构的设计与选择)
- 具有负载均衡功能MySQL服务器集群部署实现
- Linux 服务器集群系统实现方案详解
- 负载均衡--大型在线系统实现的关键(下篇)(服务器集群架构的设计与选择)
- Linux 服务器集群系统实现方案详解
- 负载均衡--大型在线系统实现的关键(下篇)(服务器集群架构的设计与选择)
- Linux 服务器集群系统实现方案详解
- Memcached集群,客户端自动hash到不同服务器的实现
- Linux 服务器集群系统实现方案详解
- 服务器集群怎么实现?
- 服务器集群怎么实现?
- 负载均衡--大型在线系统实现的关键(下篇)(服务器集群架构的设计与选择)
- Linux 服务器集群系统实现方案详解
- 负载均衡--大型在线系统实现的关键(下篇)(服务器集群架构的设计与选择)
- 服务器集群怎么实现?
- 服务器集群怎么实现?
- 负载均衡--大型在线系统实现的关键(下篇)(服务器集群架构的设计与选择)
- 服务器集群系统实现方案详解