利用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 相关文章推荐
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
Apr 25 PHP
用Zend Encode编写开发PHP程序
Feb 21 PHP
PHP 获取客户端真实IP地址多种方法小结
May 15 PHP
php判断输入不超过mysql的varchar字段的长度范围
Jun 24 PHP
Zend Studio去除编辑器的语法警告设置方法
Oct 24 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
Jun 13 PHP
php获取操作系统语言代码
Nov 04 PHP
php文件服务实现虚拟挂载其他目录示例
Apr 17 PHP
ThinkPHP处理Ajax返回的方法
Nov 22 PHP
linux下为php添加iconv模块的方法
Feb 28 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
Sep 16 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
PHP环境搭建最新方法
2006/09/05 PHP
一个odbc连mssql分页的类
2006/10/09 PHP
第四节--构造函数和析构函数
2006/11/16 PHP
php adodb连接不同数据库
2009/03/19 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
非主流的textarea自增长实现js代码
2011/12/20 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
JScript实现地址选择功能
2017/08/15 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
粗略分析Python中的内存泄漏
2015/04/23 Python
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
Python运维自动化之nginx配置文件对比操作示例
2018/08/29 Python
python中openpyxl和xlsxwriter对Excel的操作方法
2021/03/01 Python
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
解释一下抽象方法和抽象类
2016/08/27 面试题
上班迟到检讨书
2014/01/10 职场文书
《夕阳真美》教学反思
2014/04/27 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
主题班会开场白
2015/06/01 职场文书
CSS3实现的侧滑菜单
2021/04/27 HTML / CSS