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

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版
中文版,非常好用

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),