一:配置php扩展memcached

wget http://memcached.googlecode.com/files/memcached-1.4.9.tar.gz


# tar zvxf memcached-1.4.9.tar.gz
# cd memcached-1.4.9


 /usr/bin/phpize   #生成configure编译文件



如果这里出现


Can’t find PHP headers in /usr/include/php
    The php-devel package is required for use of this command


那么执行 yum install php-devel


 ./configure --with-php-config=/usr/bin/php-config \

make && make insll  

会提示找到memcache.so位置
Installing shared extensions: /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/      [不同的电脑提示也不同]

修改php.ini

先找到Php.ini的位置

find / -name php.ini

vim xxx/xxx/xxx/php.ini

extension=/根据提示的mecached的位置/memcache.so ;

杀死php进程:pkill -9 php

重启php:./usr/bin/php-fpm
最后检查memcached是否安装成功  127.0.0.1 查看是否有memcache 模块。
---------------------------------------------------------
利用telnet 测试memcached

超找memcached的位置 find / -name memcached

./usr/local/memcached/bin/memcached -m 64 -p 11211 -vvv

【注意不能是root用户开启】  ./usr/local/memcached/bin/memcached -u nobody -vv -p 11211

----------------------------------------------------------------------------------------------------------------

如果上面的不能够安装memcached就按这里的方式来安装。

wget -c http://www.memcached.org/files/memcached-1.4.17.tar.gz
tar -zxvf memcached-1.4.17.tar.gz

cd memcached-1.4.17
./configure --prefix=/usr/local/memcached
make
sudo make install

第三步:启动memcached

cd /usr/local/memcached
./bin/memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211

第三步:检查是否安装成功

$ps -aux | grep memcache 

-----------------------------------------------------------------------------------------------------

测试是否安装了telnet

rpm -q telnet-server 无信息回复表示没安装

安装 telnet

yum install telnet

在linux上打开一个窗口 打开telnet服务

telnet 127.0.0.1 11211 回车

ctrl+] 打开回显回车。

在linux上打开一个窗口 测试mecached

add news 0 0 8 /

12345678 回车

get news 回车

-------------------------------------------------------

二:nginx配置

(1)配置nginx.conf 信息
   location / {

#设置key
     set $memcached_key "$uri";
     #根据key查找对应的服务器
     memcached_pass 127.0.0.1:11211;
     #出错的时候回调php,查找数据库中的数据
     error_page 404 /callback.php;

}

在linux上打开一个窗口 打开telnet服务

telnet 127.0.0.1 11211 回车

ctrl+] 打开回显回车。

在linux上打开一个窗口添加一个memcache key

add /4.html 0 0 10 /
   hello word

浏览器上测试:输入 127.0.0.1/4.html

浏览器上显示:hello word

(2)新建测试数据
mysql -uroot -p;
use test; CREATE TABLE `abc_table` (

`uid` int(10) unsigned NOT NULL AUTO_INCREMENT,
   `name` varchar(25) NOT NULL,
    PRIMARY KEY (`uid`)
   ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert abc_table values(null,'1.html page');
 insert abc_table values(null,'2.html page');

insert abc_table values(null,'3.html page');

insert abc_table values(null,'4.html page');

insert abc_table values(null,'5.html page');

insert abc_table values(null,'6.html page');

insert abc_table values(null,'7.html page');

insert abc_table values(null,'8.html page');

insert abc_table values(null,'9.html page');

 insert abc_table values(null,'10.html page');

select * from abc_table
+-----+--------------+
| uid | name |
+-----+--------------+
| 1 | 1.html page |
| 2 | 2.html page |
| 3 | 3.html page |
| 4 | 4.html page |
| 5 | 5.html page |
| 6 | 6.html page |
| 7 | 7.html page |
| 8 | 8.html page |
| 9 | 9.html page |
| 10 | 10.html page |
+-----+--------------+

(3)编写callback.php  要是在nginx的html目录文件夹中编写。

<?php
  header("Content-type: text/html; charset=utf-8");

$uri=$_SERVER['REQUEST_URI'];

#/user4243.html

#字符串截取获取数字

$uid=substr($uri,5,strpos($uri,'.')-5);
  # echo $uid;die;
  #连接数据库并入memcached

$con=mysql_connect("localhost","root","root");

  $sql='use test';
  mysql_query($sql,$con);
  $sql="set names utf8";
  $sql="select * from abc_table where uid=".$uid;
  # echo $sql ;die;

$rs=mysql_query($sql,$con);

$sql="set names utf8";
  $sql="select * from abc_table where uid=".$uid;
  # echo $sql ;die;

$rs=mysql_query($sql,$con);

$user=mysql_fetch_assoc($rs);

if(empty($user)){
     echo "用户不存在";
   }else{
    #写入memcached
    $men=new memcache();
    $men->connect('localhost',11211);
    #echo '2222';
    $men->add($uri,$user['name'],0,300);
    $men->close();
}

(4)测试是否连接成功memcache
浏览器输入:127.0.0.1/user1.html 出现空白
再次刷新 出现数据

可以通过telnet窗口观察其中取值的变化。 --------------------------------------------------------------------------------------------------------------
请求过程如下图

17 nginx连接memcached的更多相关文章

  1. Nginx网络架构实战学习笔记(四):nginx连接memcached、第三方模块编译及一致性哈希应用

    文章目录 nginx连接memcached 第三方模块编译及一致性哈希应用 总结 nginx连接memcached 首先确保nginx能正常连接php location ~ \.php$ { root ...

  2. 手把手让你实现开源企业级web高并发解决方案(lvs+heartbeat+varnish+nginx+eAccelerator+memcached)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://freeze.blog.51cto.com/1846439/677348 此文凝聚 ...

  3. 【转】Nginx+Tomcat+Memcached集群Session共享

    cookie是怎样工作的? 例 如,我们创建了一个名字为login的Cookie来包含访问者的信息,创建Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名 是“Michael J ...

  4. 为php安装memcached扩展连接memcached服务器

    首先必须完成必要的软件安装,memcached是php连接memcached服务器的php扩展 以前有个叫memcache也是php连接memcached服务器的扩展 php的memcache和mem ...

  5. Nginx+Tomcat+Memcached负载均衡集群服务搭建

    操作系统:CentOS6.5  本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat负责实际服务,Memc ...

  6. session服务器Nginx+Tomcat+Memcached集群Session共享

    cookie是怎样工作的? 例如,我们创立了一个名字为login的Cookie来包含访问者的信息,创立Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是“Michael Jor ...

  7. Nginx+Tomcat+Memcached 实现集群部署时Session共享

    Nginx+Tomcat+Memcached 实现集群部署时Session共享 一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Sessi ...

  8. Nginx+Tomcat+memcached高可用会话保持

    Nginx+Tomcat+memcached高可用会话保持 文章来源dyc2005   一.概述 之前文章已经描述了企业高可用负载相关的架构及实现,其中常用的nginx或haproxy,LVS结合ke ...

  9. Nginx+Tomcat8+Memcached实现负载均衡及session共享

    1> 基础环境 简易拓扑图: 2> 部署Tomcat [root@node01 ~]# ll -h ~ |egrep 'jdk|tomcat'-rw-r--r-- 1 root root ...

随机推荐

  1. [论文]CA-Tree: A Hierarchical Structure for Efficient and Scalable Coassociation-Based Cluster Ensembles

    作者:Tsaipei Wang, Member, IEEE 发表:IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS—PART B: CYBERNET ...

  2. Hibernate的merge与update方法的区别

    今天做了个测试,写了个测试用例来看看merge与update时控制台打印出来的日志有什么不一样.实体bean很简单,就id和name两个字段,接下来分别给出以下几种测试情形的控制台日志内容: 1. 数 ...

  3. onCreate、onStart、onResume、onPause、onStop、onDestory(转)

    程序正常启动:onCreate()->onStart()->onResume();正常退出:onPause()->onStop()->onDestory() 一个Activit ...

  4. s 中日期 转换成时间戳 例如2013-08-30 转换为时间戳

    以前遇到过一个关于时间戳的问题,为了不被大家鄙视,先说一下概念. 具体时间戳怎么定义的我也不清楚,但百度百科中有这么一句:“时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)至当前时 ...

  5. (转)C++常用函数汇总

    1.标准C++库字符串类std::string的用法 begin       得到指向字符串开头的Iterator end       得到指向字符串结尾的Iterator rbegin        ...

  6. 洛谷——P2781 传教

    P2781 传教 题目背景 写完暑假作业后,bx2k去找pear玩.pear表示他要去汉中传教,于是bx2k准备跟着去围观. 题目描述 pear把即将接受传教的人排成一行,每个人从左到右的编号为1-n ...

  7. html特殊字符编码问题导致的细节问题

    今天在写前端html时,一个a标签的链接地址,由于链接地址需要给后台传参数,因此带了部分url参数: 在html源码里写的连接地址是: http://域名/bidder/noticesearch?no ...

  8. 【原创】Android View框架总结(三)View工作原理

    测量/布局/绘制顺序 如何引起View的测量/布局/绘制? PerformTraversales() ViewRoot View工作基本流程  MeasureSpec SpecMode Measure ...

  9. XCode设置竖屏

    选中你的项目,在General这个标签内,Deoployment info的这个分组,有一个Device Orientation 标签,内有一个Portrait的选项,选中是竖屏,取消选中是横屏

  10. wxWidgets 安装方法(Windows 8.1 + Visual Studio 2013)

    在windows 8.1上面,搭建基于visual studio 2013的wxWidgets的开发环境,方法如下: 下载  目前最新版本为3.0.0,下载地址: http://sourceforge ...