php_memcache扩展
今天在一家招聘信息看到需要熟悉memcache,以前没接触过,用的都是redis,今天稍微看了下,在这里记述下一些基础点。
memcache是什么?
首先我们需要了解memcache是做什么的,他有什么作用?
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。
在有些地方我们会发现它会以memcached名字出现,我们只要知道他们能够指代这个缓存系统。memcache是指这个项目的名称,memcached是指系统服务端的程序。
memcache的安装:
下载地址:http://yunpan.cn/Q9QcS3dIAVe5A (这是我的一个网盘分享,大家也可以去网上找其他的版本下载,内含php_memcache.dll(php5.3))
网上的安装教程有很多,我在这里只简单的记述一下:
1. 下载memcache的windows版,解压放某个盘下面,比如在c:\memcached。
2. 在终端下找到解压的目录memcached,然后运行memcached.exe -d install命令。
3. 再输入memcached.exe -d start开发memcache服务。
4.下载php_memcache.dll,请自己查找对应的php版本的文件。
5. 在php.ini加入一行 extension=php_memcached.exe 。
6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
memcached指令:
在这里也记述一下memcache的服务端的一些基本指令,大家可以通过memcached.exe -help或-h指令进行查询。
-p 监听的TCP端口,默认是11211
-U 监听的UDP端口,默认是11211.为0时关闭
-l 连接的IP地址,默认是本机
-d
start 启动memcached服务
restart 重启memcached服务
stop|shutdown 关闭memcached服务
install 安装memcached服务
uninstall 卸载memcached服务
-u 以什么身份运行(仅在以root运行的时候有效)
-m 最大使用内存,单位MB,默认64MB
-c 最大连接数,默认为1024
-M 内存耗尽时提示错误而不是删除项
-f 最小分配空间 key+value+flags 默认是48
-h 显示帮助
memcache的使用:
安装好php_memcache.dll扩展之后,那么在PHP之中就可以连接memcache进行增删改查了。下面我们一步一步的来实战memcache。
首先,要使用存储的数据,不管是mysql、redis、还是我们这里将的memcache都是需要预先连接的。PHP中连接memcache同redis,有使用过php_redis扩展的同学们应该都能轻车熟路的使用memcache。具体如下:
$mem = new Memcache;
//params: host, port
$mem->connect("127.0.0.1", 11211);
程序分析:
$mem = new Memcache;
初始化一个Memcache对象。当你配置好php_memcache.dll后就可以直接通过Memcache类生成该类的对象。若在这里出现问题的同学应该回到前面去检查检查扩展的配置了。
$mem->connect("127.0.0.1", 11211);
连接目标memcached服务器,第一个参数是目标IP地址,第二个参数是端口,端口可以在开启memcache服务的时候设置。若这里出现问题,未连接成功的同学们应该去检查一下memcached服务是否成功开启。
连接好服务器后,我们就要开始对数据进行操作了。我们先从保存数据开始,在php中向缓存服务器增加一个条目使用Memcache::add,如下
$mem->set(‘key1’, ‘this is first value’,0 , 60);
这句代码就是向memcache中插入一个条目,该条目的key为’key1’,值为’this is first value’;如果你希望存储的数据经过压缩,那么你可以设置第三个参数为MEMCACHE_COMPRESSED,否则设置为0就可以了。当然你可以对数据设置一个过期时间,超过这个时间缓存服务器就会删除该条数据,设置为0表示不过期。注意前者不可以超过2592000秒(30天)。Set函数同样也可以保存数组,把value值传递一个数组就可以了。
数据存储好后,那么当我们需要该条数据的时候我们就可以通过Memcache::get从服务端检索出来。具体如下:
$val = $mem->get('key1');
只需要将要检索的数据的key值传递给Memcache::get 就可以了,那么函数就会返回响应的value值。
但是有的时候我一条条数据的来检索,会不会太麻烦,而且还会增加代码量。那么Memcache::get 当然也考虑到了这点,所以他支持你给他传递一个数组类型,然后返回数组中元素对应的value值的数组。
获取key1的value之后,我突然发现是错的。那么我需要修改key1的值,memcache中我们使用Memcache::replace 来修改memcached中的数据值。具体如下:
$mem->replace('key1', 'This is replace value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val;
Replace函数的参数跟set的参数是一样的,这里就不多说了。
当我们有些数据不再需要使用的时候,那么我们就需要删除这些数据以免占空间。在memcached中我们是用Memcache::delete 来删除memcached中的key-value。具体如下:
$mem->delete('key1', 30);
Delete函数有两个参数,第一个参数为要删除数据的key值,第二个参数表示删除该元素的执行时间,就是多少时间后删除该元素,默认为0表示立即删除。
Php_memcached扩展还提供了一个把memcache服务器上的数据都清楚的函数Memcache::flush。有需要的时候直接使用$mem->flush()就可以了,没有任何参数.
php_memcache扩展的更多相关文章
- windows下XAMPP安装php_memcache扩展
windows下XAMPP安装php_memcache扩展 首先下载phpmemcache,地址为: http://up.2cto.com/2012/0522/20120522094758371.ra ...
- win10 64位安装memcache扩展和开启redis扩展
前面有关于win10下搭建wamp环境的介绍,在此不在赘述,php操作memcache有memcache库和memcached库,其中memcache是php内置的扩展库,支持面向对象和面向过程两种操 ...
- Windows下Memcache的安装及PHP扩展配置
一.下载 找到完整的memcache的Windows安装包,解压放在硬盘上,比如 F:\memcached.exe 二.安装 WIN7 64位双击打开这个exe可能只有一个空的窗口,不能输入任何命令, ...
- windows下安装Memcached服务器,PHP的memcache扩展
Memcahed 介绍:Memcahed是一个内存缓存服务器 (类似MySQL服务器) 作用:提高web的响应速度,例如缓存数据库查询结果 原理:把数据存到内存中 (提高速度的原因) 教程相关 系统: ...
- php 5.3 iis php_memcache 安装不上
有的服务器很扯淡,安装了很长时间的php_memcache 扩展 始终安装不上 具体原因不清楚 因为 php_memcache.dll php 官网上只有 最新支持的版本 例如 http://pecl ...
- PHP + Memcache 实现多服务器session共享
很多时候一个完整的系统可能运行在多个服务器上,如果这多个服务器之间需要共享session的话,那么php默认的files保存session的方式就无能为力了.这时我们可以考虑使用memcache 来接 ...
- ThinkPHP+Memcache的缓存方案总结
简介: ThinkPHP用S()方法可以缓存数据,这在访问数据库时非常有用,可以在有限时间内当数据库无变化时从缓存取数据,有变化时从数据库取数据. Memcached+Memcache是一个将数据保存 ...
- windows上phpstudy配置memcache
原文 http://blog.csdn.net/ltx06/article/details/78588448 总的来说,分两步:同时安装memcached软件服务和安装php_memcache ...
- memcache安装以及php_memcache.dll 扩展安装
php_memcache.dll扩展下载地址:http://windows.php.net/downloads/pecl/releases/memcache/3.0.8/ 下载注意事项:选择匹配自己环 ...
随机推荐
- DjangoWeb _ 登录页开发test
1.数据库设计 user表 --id 自增 --username varchar(20) --password varchar(25) --add_time datetime 2.数据操作 新增 修改 ...
- 「NOIP2016」天天爱跑步 题解
(声明:图片来源于网络) 「NOIP2016」天天爱跑步 题解 题目TP门 题目 题目描述 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是 ...
- 【开源】.net微服务开发引擎Anno开源啦
1.Anno是什么? Anno是一个微服务框架引擎.入门简单.安全.稳定.高可用.全平台可监控.依赖第三方框架少.底层通讯RPC(Remote Procedure Call)采用稳定可靠经过无数成功项 ...
- [PHP安全特性学习]strcmp()函数安全漏洞
简介 PHP函数的安全特性-strcmp() 函数 php-strcmp()函数 PHP strcmp() 函数 strcmp() 函数比较两个字符串. 注释:strcmp() 函数是二进制安全的,且 ...
- HarmonyOS Java UI之StackLayout布局示例
StackLayout简介 StackLayout意为堆叠布局,用于在屏幕上保留一个区域来显示组件,实现特殊的功能.通常,堆叠布局中只应该放置一个子组件,如果存在多个子组件,则显示最新的组件.这个布局 ...
- 巧妙利用Camtasia制作网课
随着互联网的快速发展,网络学习变得非常流行.这种躺在床上就可以获取知识的方法让大家渐渐地都喜欢上了学习,那么我们是否想要了解一下网课的幕后制作呢. 今天我给大家带来的便是巧妙利用Camtasia进行网 ...
- 粉丝少的UP主如何赚大钱
常逛B站的小伙伴应该知道,B站官方经常会推出各类征稿活动,奖金池也非常高,少则几万,多则上百万,可以说非常受UP主们的欢迎. 图1:B站各类活动 要知道,除了少数头部UP主可能因为没(有)有(钱)看( ...
- jQuery 第九章 工具方法之插件扩展 $.extend() 和 $.fn.extend()
$.extend() $.fn.extend() -------------------------------------------------- $.extend() 插件扩展(工具方法) jq ...
- Trie树总结
Trie,又经常叫前缀树,字典树等等.它有很多变种,如后缀树,Radix Tree/Trie,PATRICIA tree,以及bitwise版本的crit-bit tree.当然很多名字的意义其实有交 ...
- Linux 学习笔记05丨在Ubuntu 20.04配置FTP服务器
感谢 linuxconfig.org 上的这篇英文教程 FTP用于访问和传输本地网络上的文件,通过安装 VSFTPD 软件,打开热点,配置相关信息后即能够启动并运行FTP服务器了. 1. 安装和配置V ...