当前位置:Gxlcms > PHP教程 > Memcached,memcached安装_PHP教程

Memcached,memcached安装_PHP教程

时间:2021-07-01 10:21:17 帮助过:5人阅读

Memcached,memcached安装


Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

存储方式:

为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。

使用技巧:

许多语言都实现了连接memcached的客户端,其中以Perl、PHP为主。

一、这里介绍windows环境的安装。

1、下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached

2、在cmd下输入 'c:\memcached\memcached.exe -d install' 安装

3、再输入: 'c:\memcached\memcached.exe -d start' 启动。

以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。

4、很简单。不过还没完,你只是安装了一个memcached caching server,还没有和php建立关联。所以在php程序里还不能运用。

由于我的php版本是5.2.17的,下载的php_memcache.dll也要是对应的。如果你的php是5.3+的,可以在这里下载

php_memcache-cvs-20090703-5.3-nts-VC6-x86.zip

安装与平时添加扩展完全一样,把dll文件拷到你的php目录的ext目录下,然后,

在php.ini中添加extension=php_memcache.dll,重启服务器,在phpinfo里面就应该可以看到配置信息。

二、CentOS 下的安装

安装 yum -y install memcached

设置为开机启动 chkconfig --level 2345 memcached on

启动和停止 /etc/init.d/memcached start|stop

补充:如果安装缺少其他支持,可以:

yum groupinstall "Development Tools"

常用操作

Memcache::add 添加一个值,如果已经存在,则返回false

Memcache::addServer 添加一个可供使用的服务器地址

Memcache::close 关闭一个Memcache对象

Memcache::connect 创建一个Memcache对象

Memcache::debug 控制调试功能

Memcache::decrement 对保存的某个key中的值进行减法操作

Memcache::delete 删除一个key值

Memcache::flush 清除所有缓存的数据

Memcache::get 获取一个key值

Memcache::getExtendedStats 获取进程池中所有进程的运行系统统计

Memcache::getServerStatus 获取运行服务器的参数

Memcache::getStats 返回服务器的一些运行统计信息

Memcache::getVersion 返回运行的Memcache的版本信息

Memcache::increment 对保存的某个key中的值进行加法操作

Memcache::pconnect 创建一个Memcache的持久连接对象

Memcache::replace R对一个已有的key进行覆写操作

Memcache::set 添加一个值,如果已经存在,则覆写

Memcache::setCompressThreshold 对大于某一大小的数据进行压缩

Memcache::setServerParams 在运行时修改服务器的参数

php  
//连接Memcache  
$mem = new Memcache;  
$mem->connect("localhost", 11211);  
//保存数据  
$mem->set('key1', 'This is first value', 0, 60);  
$val = $mem->get('key1');  
echo "Get key1 value: " . $val ."
"; //替换数据 $mem->replace('key1', 'This is replace value', 0, 60); $val = $mem->get('key1'); echo "Get key1 value: " . $val . "
"; //保存数组数据 $arr = array('aaa', 'bbb', 'ccc', 'ddd'); $mem->set('key2', $arr, 0, 60); $val2 = $mem->get('key2'); echo "Get key2 value: "; print_r($val2); echo "
"; //删除数据 $mem->delete('key1'); $val = $mem->get('key1'); echo "Get key1 value: " . $val . "
"; //清除所有数据 $mem->flush(); $val2 = $mem->get('key2'); echo "Get key2 value: "; print_r($val2); echo "
"; //关闭连接 $mem->close(); ?>

memcached 的工作原理:

首先 memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,客户端可以由各种语言编写,目前已知的客户端 API 包括 Perl/PHP/Python/Ruby/Java/C#/C 等等。

PHP 等客户端在与 memcached 服务建立连接之后,接下来的事情就是存取对象了,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。注意,这些对象并不是持久的,服务停止之后,里边的数据就会丢失。

memcachedb:

MemcacheDB是一个分布式、key-value形式的持久存储系统。它不是一个缓存组件,而是一个基于对象存取的、可靠的、快速的持久存储引擎。协议跟memcache一致(不完整),所以很多memcached客户端都可以跟它连接。MemcacheDB采用Berkeley DB作为持久存储组件,故很多Berkeley DB的特性的他都支持。

我们是站在巨人的肩膀上的。MemcacheDB的前端缓存是Memcached

前端:memcached的网络层

后端:BerkeleyDB存储

memcached和smarty的关系及区别是什么啊?

Memcache是一个高性能的分布式的内存对象缓存系统,把缓存记录到内存的系统.。

例如,从数据库中获取列表显示,但并不想每次都读取数据库,这样就需要用到缓存,而memcache就是其中的一种,它是把记录保存在内存中使用

例如要重db获取数据显示出来, db -> memcache -> client

首先先判断memcache有没有数据,如果没有则读取DB,然后把db获取到的记录保存在memcache

下次再需要读取记录时,就可以直接在memcache中读取,这样就可以分担数据库的负担,而且速度快很多。

Smarty是一个使用PHP写出来的模板引擎,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计。

smarty是运行在MVC结构的view中。

例如 php 我们要显示一个变量,需要这样写 echo $a;

而用smarty则需要这样写 {$a} ,经过编译后,会自动显示出 echo $a;,是一样的,smarty中的缓存,php要运行后,才可以输出到浏览器,php运行生成html输出是需要运算的,而smarty则会把之前运行过的php生成后的html保存起来,如果再调用这个php则会直接输出之前的html.起到缓存作用。

memcache 和 smarty没有关系,两者作用是不一样的,没有联系的。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/993268.htmlTechArticleMemcached,memcached安装 Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象...

人气教程排行