利用php操作memcache缓存的基础方法示例


Posted in PHP onAugust 02, 2017

前言

最近在工作中又遇到了memcache,大家应该都有所了解,memcache 是一个高效的分布式的内存对象缓存系统,他可以支持把php的各种数据(数组,对象,基本数据类型)放在它管理的内存中,本文将给大家详细介绍关于php操作memcache缓存的基础方法,话不多说,来一起看看详细的介绍吧。

1、代码使用

<?php 
 
 //连接 
 $mem = new Memcache; 
 $mem->connect("127.0.0.1", 11211) or die ("Could not connect"); 
 //显示版本 
 $version = $mem->getVersion(); 
 echo "Memcached Server version: ".$version."<br>"; 
 //保存数据 
 $mem->set('key1', 'This is first value', 0, 60); 
 $val = $mem->get('key1'); 
 echo "Get key1 value: " . $val ."<br>"; 
 //替换数据 
 $mem->replace('key1', 'This is replace value', 0, 60); 
 $val = $mem->get('key1'); 
 echo "Get key1 value: " . $val . "<br>"; 
 //保存数组 
 $arr = array('aaa', 'bbb', 'ccc', 'ddd'); 
 $mem->set('key2', $arr, 0, 60); 
 $val2 = $mem->get('key2'); 
 echo "Get key2 value: "; 
 print_r($val2); 
 echo "<br>"; 
 
 //对数组进行序列化,在网络传输的时候,为了保证,数据类型的不丢失,先序列化,再发生. 
 //$arr1=serialize($arr); 
 $arr2=json_encode($arr1); 
 print_r($arr2); 
 
 //删除数据 
 $mem->delete('key1'); 
 $val = $mem->get('key1'); 
 echo "Get key1 value: " . $val . "<br>"; 
 //清除所有数据 
 $mem->flush(); 
 $val2 = $mem->get('key2'); 
 echo "Get key2 value: "; 
 print_r($val2); 
 echo "<br>"; 
 //关闭连接 
 $mem->close(); 
 
?>

2、函数库详解:

  • Memcache::add - 添加一个值,如果已经存在,则返回false
  • Memcache::addServer - 添加一个可供使用的服务器地址
  • Memcache::close - 关闭一个Memcache对象
  • Memcache::connect - 创建一个Memcache对象
  • memcache_debug - 控制调试功能! [4 F8 C2 e, X
  • 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 -对一个已有的key进行覆写操作
  • Memcache::set - 添加一个值,如果已经存在,则覆写
  • Memcache::setCompressThreshold - 对大于某一大小的数据进行压缩
  • Memcache::setServerParams - 在运行时修改服务器的参数

3、分布式使用:

Memcache函数库是在PECL(PHP Extension Community Library)中,主要作用是搭建大容量的内存数据的临时存放区域,在分布式的时候作用体现的非常明显

<?php 
 
 //1.实例化一个Memcache对象 
 $mem=new Memcache(); 
 
 //2. 连接到指定的memcache中 
 // $mem->connect("127.0.0.1",11211); 
 
 //如果我们网站,需要多个memached缓存系统,如下使用分布式 
 $mem->addServer("192.168.1.100",11211); 
 $mem->addServer("192.168.1.200",11211); 
 $mem->addServer("192.168.1.222",11211); 
 
 //创建多个memcache服务使用addServer 会根据负载均衡算法,自动放入每个服务器 
 $mem->add("name","zs",0,100); 
 
?>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
php 的加密函数 md5,crypt,base64_encode 等使用介绍
Apr 09 PHP
PHP实现生成唯一会员卡号
Aug 24 PHP
php上传大文件失败的原因及应对策略
Oct 20 PHP
PHP身份证校验码计算方法
Aug 10 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
Aug 29 PHP
php解决和避免form表单重复提交的几种方法
Aug 31 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
Nov 05 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
PHP5.6新增加的可变函数参数用法分析
Aug 25 PHP
为何说PHP引用是个坑,要慎用
Apr 02 PHP
php从数据库中获取数据用ajax传送到前台的方法
Aug 20 PHP
php 将json格式数据转换成数组的方法
Aug 21 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
Aug 02 #PHP
YII框架中使用memcache的方法详解
Aug 02 #PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
Aug 02 #PHP
php7安装mongoDB扩展的方法分析
Aug 02 #PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
Aug 02 #PHP
基于win2003虚拟机中apache服务器的访问
Aug 01 #PHP
完美解决Thinkphp3.2中插入相同数据的问题
Aug 01 #PHP
You might like
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
2008/03/28 PHP
php之XML转数组函数的详解
2013/06/07 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
2015/12/08 PHP
php通过smtp邮件验证登陆的方法
2016/05/11 PHP
php array_reverse 以相反的顺序返回数组实例代码
2017/04/11 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
JS解密入门之凭直觉解
2008/06/25 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
JavaScript获取页面中第一个锚定文本的方法
2015/04/03 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
Bootstrap基本插件学习笔记之折叠(22)
2016/12/08 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
vue项目中使用rem,在入口文件添加内容操作
2020/11/11 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
python 表格打印代码实例解析
2019/10/12 Python
Keras官方中文文档:性能评估Metrices详解
2020/06/15 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
Diamondback自行车:拥有你的冒险
2019/04/22 全球购物
Oracle的内存结构(Memory structures)
2015/06/10 面试题
毕业生个人的求职信范文
2013/12/03 职场文书
园林技术个人的自我评价
2014/01/08 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
最常使用的求职信
2014/05/25 职场文书
“四风”查摆问题自我剖析材料
2014/09/27 职场文书
社区党建工作汇报材料
2014/10/27 职场文书
2014年学生会工作总结
2014/11/07 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
新生儿未入户证明
2015/06/23 职场文书
养成教育主题班会
2015/08/13 职场文书