目录
Memcached,memcached安装
首页 php教程 php手册 Memcached,memcached安装

Memcached,memcached安装

Jun 13, 2016 am 09:05 AM
memcached

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          在运行时修改服务器的参数  

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

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没有关系,两者作用是不一样的,没有联系的。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Memcached缓存技术对于PHP中的Session处理的优化 Memcached缓存技术对于PHP中的Session处理的优化 May 16, 2023 am 08:41 AM

Memcached是一种常用的缓存技术,它可以使Web应用程序的性能得到很大的提升。在PHP中,常用的Session处理方式是将Session文件存放在服务器的硬盘上。但是,这种方式并不是最优的,因为服务器的硬盘会成为性能瓶颈之一。而使用Memcached缓存技术可以对PHP中的Session处理进行优化,提高Web应用程序的性能。PHP中的Session处

PHP8.0中的缓存库:Memcached PHP8.0中的缓存库:Memcached May 14, 2023 am 08:16 AM

PHP8.0中的缓存库:Memcached随着互联网的快速发展,现代应用程序需要高效可靠的缓存技术来提高性能和处理大量数据。由于PHP的流行和开源特性,PHP缓存库已经成为了Web开发社区的一个必备工具。Memcached是一种广泛使用的开源高速内存缓存系统,它能处理数百万个同时连接的缓存请求,可以用于许多不同类型的应用程序,例如社交网络、在线

如何使用Memcached缓存技术优化PHP应用程序CPU的使用率? 如何使用Memcached缓存技术优化PHP应用程序CPU的使用率? Jun 21, 2023 pm 05:07 PM

随着互联网的发展,PHP应用程序在互联网应用领域中变得越来越常见。但是,PHP应用程序的高并发访问会导致服务器的CPU使用率高,从而影响应用程序的性能。为了优化PHP应用程序的性能,Memcached缓存技术成为了一种很好的选择。本文将介绍如何使用Memcached缓存技术优化PHP应用程序CPU的使用率。Memcached缓存技术简介Memcached是一

PHP与Memcached数据库备份与恢复 PHP与Memcached数据库备份与恢复 May 15, 2023 pm 09:12 PM

随着互联网的快速发展,大规模MySQL数据库备份和恢复成为各大企业和网站必备的技能之一。而随着Memcached的广泛应用,如何备份和恢复Memcached也成为了一个重要的问题。PHP作为Web开发的主力语言之一,在处理备份和恢复MySQL和Memcached上拥有独特的优势和技巧。本文将详细介绍PHP处理MySQL和Memcached备份与恢复的实现方法

使用PHP和Memcached进行缓存管理 使用PHP和Memcached进行缓存管理 May 23, 2023 pm 02:21 PM

随着网络应用的不断增加和数据量的不断膨胀,数据的读写效率成为影响应用性能的重要因素之一。而缓存技术的应用则可以很好地解决这个问题。在PHP应用中,Memcached是最常用的缓存服务器。Memcached是一个高性能的分布式内存对象缓存系统,可以将常用的数据存储在内存中,提高数据检索的效率。本文将介绍如何使用PHP和Memcached进行缓存管理,以及如何优

利用Memcached缓存技术对于PHP中的音视频播放进行优化 利用Memcached缓存技术对于PHP中的音视频播放进行优化 May 17, 2023 pm 04:01 PM

随着互联网技术的不断发展,音视频资源已经成为了互联网上非常重要的一种内容形式,而PHP作为网络开发中使用最广泛的语言之一,也在不断地应用于视频和音频播放领域。然而,随着音视频网站的用户日益增加,许多网站已经发现了一个问题:在高并发的情况下,PHP对于音视频的处理速度明显变缓,会导致无法及时播放或者播放卡顿等问题。为了解决这个问题,Memcached缓存技术应

PHP与Memcached性能监控 PHP与Memcached性能监控 May 15, 2023 pm 09:51 PM

随着现代互联网应用的快速发展,用户体验对于一个应用的成功至关重要。如何保证应用的高性能和高可用性,成为了开发人员需要解决的重要问题之一。PHP作为一种广泛应用的编程语言之一,它的性能监控和优化也是非常重要的。Memcached是一个高性能、分布式的内存对象缓存系统,可以帮助应用提高性能和扩展性。本文将介绍如何使用PHP和Memcached实现性能监控的方法。

PHP实现Memcached数据库集群的方法 PHP实现Memcached数据库集群的方法 May 15, 2023 pm 03:31 PM

随着互联网应用的快速发展,数据存储和处理变得越来越庞大和复杂。在这样的背景下,Memcached作为一款高性能、轻量级的分布式内存缓存系统,逐渐成为互联网应用领域中不可或缺的一部分。在PHP语言中,Memcached可以通过扩展内置的Memcached类实现与Memcached服务器的交互,而在实际生产环境中,我们需要通过搭建Memcached数据库集群来保

See all articles