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/ 下载注意事项:选择匹配自己环 ...
随机推荐
- Hive 报错 Failed to load class "org.slf4j.impl.StaticLoggerBinder".
打开hive报错 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaultin ...
- 内存使用过高点检checklist
正在运行的程序按照内存段来组织,内存段的类型有如下几种: 代码段:用户程序指令,长期存在内存中 数据段:全局变量等,长期存在内存中 堆:局部变量,参数参数等,短期存在内存中 栈:动态存储,可变 代码段 ...
- iczer的vue-antd-admin项目,逐步平滑迁移mock的url
这个需求,在实战中蛮有用的.但没有看到网上太多文档,就自己hack了一个思路.供指正. 需求 在前后端分离的项目开发中,前后端的开发步骤和进度是不一致的.有时,前端为了不等待后端的API开发进度,会自 ...
- Tomcat口令暴力猜解&&后台getshell
Tomcat环境搭建 windows系统xampp搭建tomcat linux yum搭建tomcat 修改tomcat目录下的conf/tomcat-users.xml文件开启管理后台口令认证 &l ...
- No matching distribution found for Tensorflow
No matching distribution found for Tensorflow 原因:python 3.7.3 版本过高 解决:安装3.6 64位
- workerman搭建聊天室
首先,先打开官网手册 http://doc.workerman.net/ 根据手册里安装里的提示,完成环境检测,和安装对应的扩展,并把对应的WorkerMan代码包下载解压至根目录 在根目录下创建 ...
- Guitar Pro 功能介绍之RSE引擎
众所周知,Guitar Pro是一个集多音轨丰富音色库的一款软件,并且拥有MIDI 音序器,但是光拥有MIDI是无法让我们制作的音乐可以如此逼真,而Guitar Pro能创造制作这么逼真的音乐,多亏了 ...
- Vue最简单的实现网页Live2D看板娘
Live2D看板娘 前言 二.使用步骤 1.引入 2.设置样式 结尾(后续更新更强的配置看板娘~) 前言 最近想给自己的网页添点新花样,然后就想到了别人的网站都有一些看板娘的玩意儿,看着很舒服,鉴于自 ...
- SpringBoot---WebMvcConfigurer详解
1. 简介 2. WebMvcConfigurer接口 2.1 addInterceptors:拦截器 2.2 addViewControllers:页面跳转 2.3 addResourceHandl ...
- Codeforces Round #667 (Div. 3) B、C、D、E 题解
抱歉B.C题咕了这么久 B. Minimum Product #枚举 #贪心 题目链接 题意 给定四个整数\(a, b, x, y\),其中\(a\geq x, b\geq y\),你可以执行不超过\ ...