17 nginx连接memcached
一:配置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的更多相关文章
- Nginx网络架构实战学习笔记(四):nginx连接memcached、第三方模块编译及一致性哈希应用
文章目录 nginx连接memcached 第三方模块编译及一致性哈希应用 总结 nginx连接memcached 首先确保nginx能正常连接php location ~ \.php$ { root ...
- 手把手让你实现开源企业级web高并发解决方案(lvs+heartbeat+varnish+nginx+eAccelerator+memcached)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://freeze.blog.51cto.com/1846439/677348 此文凝聚 ...
- 【转】Nginx+Tomcat+Memcached集群Session共享
cookie是怎样工作的? 例 如,我们创建了一个名字为login的Cookie来包含访问者的信息,创建Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名 是“Michael J ...
- 为php安装memcached扩展连接memcached服务器
首先必须完成必要的软件安装,memcached是php连接memcached服务器的php扩展 以前有个叫memcache也是php连接memcached服务器的扩展 php的memcache和mem ...
- Nginx+Tomcat+Memcached负载均衡集群服务搭建
操作系统:CentOS6.5 本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat负责实际服务,Memc ...
- session服务器Nginx+Tomcat+Memcached集群Session共享
cookie是怎样工作的? 例如,我们创立了一个名字为login的Cookie来包含访问者的信息,创立Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是“Michael Jor ...
- Nginx+Tomcat+Memcached 实现集群部署时Session共享
Nginx+Tomcat+Memcached 实现集群部署时Session共享 一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Sessi ...
- Nginx+Tomcat+memcached高可用会话保持
Nginx+Tomcat+memcached高可用会话保持 文章来源dyc2005 一.概述 之前文章已经描述了企业高可用负载相关的架构及实现,其中常用的nginx或haproxy,LVS结合ke ...
- Nginx+Tomcat8+Memcached实现负载均衡及session共享
1> 基础环境 简易拓扑图: 2> 部署Tomcat [root@node01 ~]# ll -h ~ |egrep 'jdk|tomcat'-rw-r--r-- 1 root root ...
随机推荐
- shell 执行提示No such file or directory
问题描述: 项目开发过程中ansible执行脚本失败,单独运行shell脚本提示:No such file or directory,脚本结构执行脚本a 调用另一脚本b, 但查看b脚本路径正确不存在找 ...
- c语言命令行参数
int main(int argc, char * argv[]) { ..... } argc: 代表启动程序时,命令行参数的个数.C和C++语言规定,可执行程序程序本身的文件名,也算是一个命令行参 ...
- LeetCode OJ-- Jump Game II **
https://oj.leetcode.com/problems/jump-game-ii/ 给一个数列,每次可以跳相应位置上的步数,问跳到最后位置至少用几步. 动态规划: j[pos]表示从0到po ...
- Goodbye 2017 B
[题意]: 鲍勃编程一个机器人在2d迷宫中导航.迷宫有一些障碍.空单元格用'.'表示,其中障碍物用'#'表示.迷宫中有一个机器人.它的起始位置用字符“S”表示.这个位置没有任何障碍.迷宫中也有一个出口 ...
- python画直线
#!/usr/bin/env python import matplotlib.pyplot as plt import numpy as np #beita = 1 #gama = 0.5 #x:f ...
- 寒假week1---二分查找(二分枚举)
寒假week1---二分查找(二分枚举)1.适用条件:要查找(枚举)的集合有序 && 查找(枚举)的“条件”具有单调性2.什么是“条件”:example: 1.给定一个有序数组,从中查 ...
- spring源码学习(一)
Spring作为一个IOC容器,今天我们学习它作为web解析的地方,学习下webmvc包的代码.我们先看下web.xml文件 可以看到通过DispatcherServlet来实现页面的mapper处理 ...
- delphi如何把一个整数转化为4个十六进制字节
var s:string; len:Integer; AData:TBytes; begin s:=IntToHex(149259,6);//返回6位字符串 len ...
- JavaScript 深克隆
深克隆 function judgeType(arg){//判断js数据类型 return Object.prototype.toString.call(arg).slice(8,-1); } fun ...
- ArcGIS 10.2 二次开发,兼容Visual Studio 2012二次开发,完美安装教程
GIS 经常安装是常有的事,每次重装系统都要浪费大半天去安装这个.所以凑这一次安装,把这个软件重新安装的步骤整理了一下,希望对大家有所帮助.这次整理的内容的关键优点是,对常见的出错内容进行了归纳整理. ...