PHP与memcache和memcached以及安装使用
老规则,在作者寒冰讲之前我们要来明确memcache与memcached这两个东西到底是什么?
说法一:
两个不同版本的php的memcached的客户端 new memcache是pecl扩展库版本 new memcached是libmemcached版本 功能差不多
说法二:
Memcache是什么? Memcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。
它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。 Memcached是简单而强大的。它简单的设计促进迅速部署,易于发展所面临的问题,解决了很多大型数据缓存。它的API可供最流行的语言。
Memcache的知名用户有:LiveJournal、Wikipedia、Flickr、Bebo、Twitter、Typepad、Yellowbot、Youtube 等。
Memcache官方网站:http://memcached.org/ Memcached又是什么?
Memcache是该系统的项目名称,Memcached是该系统的主程序文件,以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,使用共享内存存取数据。 那PHP中的Memcache是什么?
php中的所讲的memcache是用于连接Memecached的客户端组件。 简单的说一句话:Memcached 是一个服务(运行在服务器上的程序,监听某个端口),Memcache 是 一套访问Memcached的api。 两者缺一不可,不然无法正常运行。
作为寒冰我个人的见解,我认为第二种说法比较靠谱:memcache看作是访问memcached的扩展程序。memcached负责管理缓存在内存里面的数据。而memcache负责去操作里面的数据。这也是目前的做法。 其实,在PHP库里面有提到这两个扩展。而且,分别有一套API。
不管怎样,我们要使用memcache这个内存缓存,必须安装将memcache安装到php里面,再在linux系统中安装memecached。这样,PHP才能通过memecache去内存存取数据。 这个memcached也有另外一个扩展,使用方式与memcache一样的。我今天要讲的是memcache与memcached之间的关系。 关于memcache的安装,已经在PHP环境安装一文中详细描述。现在我们来讲memcached的安装。
1、下载memcached.
cd /usr/local/src
wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
2、安装memcached.
1)由于memcached依赖libevent这个扩展,所以,要先安装。
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar zxvf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure --prefix=/usr/local/libevent
make && make install
我把这个依赖的扩展安装在了:/usr/local/libevent
2)安装memcached.
tar zxvf memcached-1.4.15.tar.gz
cd memcached-1.4.15
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
make
make install
我在这里安装的时候使用了–with-libevent的参数,告诉memcached扩展libevent的所在安装目录。
3)启动memcached。
/usr/local/memcached/bin/memcached -d -m 128 -p 11211 -u root
4)查看是否安装启动成功memcached.
ps aux | grep memcached
如果显示如下信息,说明已经安装成功:
root 10034 0.0 0.2 327916 2268 ? Ssl 10:23 0:00 /usr/local/memcached/bin/memcached -d -m 128 -p 11211 -u root
root 10054 0.0 0.0 103240 888 pts/0 S+ 10:26 0:00 grep memcached
3、使用memcache缓存数据到内存。
$memcache_obj = memcache_connect("localhost", 11211);
/* 面向过程编程 API */
memcache_add($memcache_obj, 'var_key', 'test variable', false, 30);
/* 面向对象编程 API */
$memcache_obj->add('var_key', 'test variable', false, 30);
如果运行运行以上脚本没有报错,说明已经OK了。 现在,我们已经将数据放入内存中了。我们现在要来把数据读取出来。在以上的脚本后面增加如下代码:
$var = $memcache_obj->get('var_key');
var_dump( $var );
现在你是否已经看到数据的输出。恭喜你。 关于更多的操作,请查看PHP手册的memcache部分。
PHP与memcache和memcached以及安装使用的更多相关文章
- memcache与memcached介绍及安装配置
也许大家一看到Memcache和Memcached会有点晕,这两者有什么关系又有什么区别呢,下面先给大家说下Memcached,Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应 ...
- Memcached总结二:Memcached环境安装设置以及连接memcache服务器
1 在Ubuntu上安装Memcached 要在Ubuntu上安装Memcached,打开终端,然后输入以下命令: $sudo apt-get update $sudo apt-get install ...
- memcached的安装以及php两个扩展软件安装(memcache、memcached)
百度云安装包:http://pan.baidu.com/s/1pKZeDwn k3ap 1.安装memcached Memcached是基于libevent的事件处理,所以它的安装依赖libeven ...
- PHP 7 安装 Memcache 和 Memcached 总结
Memcache 与 Memcached 的区别 Memcached 是 Memcache 的升级版,优化了 Memcache,并增加了一些操作方法.所以现在基本都是用最近版本的. PHP 7 下安装 ...
- linux-CentOS6.4安装Memcached+memcached扩展+安装memcache扩展+Memcache+mecached同步SESSION的几种方法
一.编译环境的准备 yum install gcc yum install gcc-c++ libstdc++-devel yum install zlib-devel 二.源代码包准备 wget ...
- 安装php扩展模块参数memcache和memcached在php中的应用
一, memcache和memcached的区别与关系统php要想去访问memcached就得需要memcache扩展,这个道理和php连接mysql一样. 你不安装memcache扩展就没法识别me ...
- ubuntu下安装memcache及memcached
memcache 和 memcached 有什么区别呢? memcache最早是在2004年2月开发的,而memcached最早是在2009年1月开发的.所以memcache的历史比memcached ...
- php7安装memcache 和 memcached 扩展
php7安装memcache 和 memcached 扩展 标签(空格分隔): php memcache和memcached区别 memcache:http://pecl.php.net/packag ...
- PHP7 下安装 memcache 和 memcached 扩展
转载自:https://www.jianshu.com/p/c06051207f6e Memcached 是高性能的分布式内存缓存服务器,而PHP memcache 和 memcached 都是 Me ...
随机推荐
- fedora 安装nginx+php+mysql
环境 fedora 最新版 20 参考:http://www.cnblogs.com/beceo/archive/2012/08/21/2648378.html ------------------- ...
- python logging模块使用
近来再弄一个小项目,已经到收尾阶段了.希望加入写log机制来增加程序出错后的判断分析.尝试使用了python logging模块. #-*- coding:utf-8 -*- import loggi ...
- 新的疑问(未解决):VC项目的配置,不是都能在Project -- Properties里设置解决的
现象:死活解决不了引入外部库的LPCWSTR参数传递问题.而用VS新建的项目,就没有这个问题. 我怀疑是当初.pro文件产生VC项目文件时候,做了一些设置,但是内容太长了,又很复杂,所以没法核对. 用 ...
- java Future 模式
考慮這樣一個情況,使用者可能快速翻頁瀏覽文件中,而圖片檔案很大,如此在瀏覽到有圖片的頁數時,就會導致圖片的載入,因而造成使用者瀏覽文件時會有停頓 的現象,所以我們希望在文件開啟之後,仍有一個背景作業持 ...
- 常用SNS开源系统比较
常用SNS开源系统比较 这 几天看了很多关于SNS(社交网络服务) 的东西..得到了不少启发..目前的IDEA是..可以在学校弄一个试试..主打的东西不能和现有的SNS冲突(如校内网).利用本地优势. ...
- poj2240 - Arbitrage(汇率问题,floyd)
题目大意: 给你一个汇率图, 让你判断能否根据汇率盈利 #include <iostream> #include <cstdlib> #include <cstdio&g ...
- 【转】显示Ubuntu文件浏览器的地址栏--不错
原文网址:http://www.blogbus.com/anythingok-logs/144447448.html Ubuntu默认使用nautilus作为其可视化的文件浏览器,其默认值不显示地址栏 ...
- 调用test case集,并生成测试报告
结构是 test_all.py 进行配置,执行所有测试用例集,并合并测试报告到同一个文件 #test_all.py 进行配置,执行所有测试用例集 # coding = utf-8 from time ...
- 安装loadrunner11 ,出现如下错误如何解决?
出现的问题是: 安装LoadRunner 11时弹窗提示"Micosoft Visual C++ 2005 SP1 可再发行组件包(X86):'命令行选项语法错误.键入命令 / ? 可获得帮 ...
- Application之图书馆
前两天小编讲的都是些比较隐私的东西,为啥隐私?因为它俩(cookie和session)都只有用户自已才能使用和访问,今天小编来介绍个比较开放点的东西给大家. 小编虽已脱下学生服装多年,但如今忆起当年校 ...