memcached学习笔记4--memcache扩展操作memcached
1、
安装并配置memcache扩展库
找到php.ini文件 添加:
extendsion= php_memcache.dll
并把对应的dll文件拷贝到ext目录
2、
使用PHP对Memcahced进行CURD操作(查看手册)
3、
编程测试
用于测试添加和获取
//实例化memcache对象
$m = new Memcache();
//连接到指定的memcached中 ,第一个参数:IP地址, 第二个参数memcached端口号
$m->connect('127.0.0.1', );
//添加数据到Mem中
/*
add('键','值','压缩与否','保存时间')
压缩与否:0表示不压缩,常量 MEMCACHE_COMPRESSED
保存时间:单位秒
其中值得类型可以是:布尔型,null,数值型(整型和浮点型),字符串型,数组类型,对象,不可以是资源类型(存放资源,会将资源当成布尔值放入Mem中,数据类型丢失,故不可以是资源型数据)
如果是数组,请使用
①序列化函数(serialize和unserialize)进行操作
②或者使用json_encode()/json_decode()函数转化为json对象
再存入mem中
*/
$user = array(
array(
'u1' => 'admin1',
'age1' => ,
'email' => 'aa@aa.com'
),
array(
'u2' => 'admin2',
'age1' => ,
'email' => 'bb@bb.com'
),
);
//因为数组,先进行序列化
/*
为什么进行序列化:
在网络传输的时候,为了保证数据的类型不丢失,先序列化再发送,
或者转化为json对象
*/
// $user = serialize($user);
$user = json_encode($user);
if (!$m->set('user', $user , MEMCACHE_COMPRESSED, )) {
echo "请注意键值唯一";
} else {
echo "加入成功";
}
echo "<hr />";
//获取刚才的key值
//$user = unserialize($m->get('user'));
$user = json_decode($m->get('user'));
$user = object2array($user);
dump($user);
结论:在PHP所有的变量类型中,除了资源类型,其他的变量类型都可以放入memcached中
分析一个问题:mem在什么时候使用合适?
cookie、session、memcached的作用域分别是?
cookie 在各自的浏览器(客户端) --- 与一个浏览器关联
所以我们运用cookie来做的事情可以是:
①保存这个用户曾经访问过哪些网站
②访问过网站中的哪些商品
session 在服务器端(服务器和某些文件关联的(session是放在文件中的))一次会话关联(用户打开浏览器到用户关闭结束) ---私有空间
追踪某个用户的行为
memcached 所有的了浏览器都可以访问 --- 公共空间
如果一个浏览器对应一个用户,那么不同的用户的操作都可以同时访问memcached
如果我们网站,需要多个memcached缓存系统
$m = new Memcache();
$m -> addServer('192.168.1.101', 11211);
$m -> addServer('192.168.1.102', 11211);
$m -> addServer('192.168.1.103', 11211);
$m -> addServer('192.168.1.104', 11211);
这里使用负载均衡的算法来挑选一个memcached服务器。
$m->add('user', $user, MEMCACHE_COMPRESSED, 60);
说明:
当我们添加了memcached群时,我们添加数据时,不知道这个数据是存在哪台Memcached服务器上的,这个过程由addServer自动调节,自己去均衡。
memcached学习笔记4--memcache扩展操作memcached的更多相关文章
- Memcached学习笔记 — 第四部分:Memcached Java 客户端-gwhalin(1)-介绍及使用
介绍 Memcached java client是官方推荐的最早的memcached java客户端.最新版本:java_memcached-release_2.6.1. 官方下载地址:http ...
- Memcached 学习笔记(二)——ruby调用
Memcached 学习笔记(二)——ruby调用 上一节我们讲述了怎样安装memcached及memcached常用命令.这一节我们将通过ruby来调用memcached相关操作. 第一步,安装ru ...
- memcached学习笔记——存储命令源码分析下篇
上一篇回顾:<memcached学习笔记——存储命令源码分析上篇>通过分析memcached的存储命令源码的过程,了解了memcached如何解析文本命令和mencached的内存管理机制 ...
- memcached学习笔记——存储命令源码分析上篇
原创文章,转载请标明,谢谢. 上一篇分析过memcached的连接模型,了解memcached是如何高效处理客户端连接,这一篇分析memcached源码中的process_update_command ...
- Memcached学习笔记
[TOC] 前言 此为学习笔记汇总,如有纰漏之处,还望不吝指出,谢谢. 启动流程 调用settings_init()设定初始化参数 从启动命令中读取参数来设置setting值 设定LIMIT参数 开始 ...
- memcached学习笔记6--浅谈memcached的机制 以及 memcached细节讨论
附:请浅谈memcached的机制 答: ①基于C/S架构,协议比较简单 c/s架构,此时memcached为服务器端,我们可以使用如PHP,c++/c等程序连接memcached服务器. memca ...
- memcached学习笔记2--安装及命令
学习memcached的原理: 用户一 -> 访问浏览器 -> 服务器Apache -> PHP文件(该文件应用了memcached技术) -> [第一次]到数据库DB中查找数 ...
- memcached 学习笔记 1
一 简介 1 What is Memcached? Free & open source, high-performance, distributed memory object cachin ...
- (转)memcached学习笔记1(windows 7 64bit 环境下安装memcached)
windows 7 64bit 环境下安装memcached 1.下载后解压到D:\memcached(下载地址:memcached-win64下载地址) 2.安装到windows服务,打开cmd命令 ...
- memcached 学习笔记 2
原理 1 核心组件 Memcached有两个核心组件组成:服务端(ms)和客户端(mc). 首先mc拿到ms列表,并对key做hash转化,根据hash值确定kv对所存的ms位置. 然后在一个memc ...
随机推荐
- UML从需求到实现---类图(2)
上节写到了UML中的类图:UML从需求到实现---类图(1) 写完以后总觉得写的不够详细.里面很多细节没有说到.一篇文章就把强大的面向对象的类说完.当然是不可能的.这次我再补充一些关于UML中类图和类 ...
- LBS优化方案探究
方案1: 假设数据结构是这个样子的结构 那么找某个范围之内的用户,相当于: select * from tb_lbs_user where lat > lat_min and lat < ...
- Wcf for wp8 使用iis Express 承载Wcf服务部署发布网站(三)
我们接下来要做的是 本地电脑当作服务器(模拟外网服务器)来承载Wcf服务程序,通过引用本地电脑ip地址访问wcf服务程序接口 http://192.168.1.123/Service1.svc 一.先 ...
- Wordpress模板制作、改造、设计
如何定义index.php以及如何派生出其它文件,在index.php文件中,在body元素内,新建如下结构化标记元素,各元素都带有不同的id属性: <div id=”page”> < ...
- POJ 2752 Seek the Name, Seek the Fame kmp(后缀与前缀)
题意: 给你一个串T,找出串T的子串,该串既是T的前缀也是T的后缀.从小到大输出所有符合要求的串的长度. 分析: 首先要知道KMP的next[i]数组求得的数值就是串T中的[1,i-1]的后缀与串T中 ...
- 关于phpstudy安装的问题
1.最常见的就是80端口冲突.如果是安装在服务器的话,有些服务器已经默认安装了iis,所以会有冲突.关闭iis即可. 2.明明装了vc9运行库,但错误还是不行.如果你是整个项目copy过来的,可能就会 ...
- Loadrunner模拟JSON接口请求进行测试
Loadrunner模拟JSON接口请求进行测试 一.loadrunner脚本创建 1.Insert - New step -选择Custom Request - web_custom_re ...
- c#知识总结2
四.C#类型转换 类型转换就是把一种类型转换成为另一种类型. 隐式类型转换:c#默认的以安全方式进行的转换.例如小整数类型转换为大整数类型.派生类转换为基类 显式类型转换:用户使用的预定义的函数显式完 ...
- AngularJS 表单提交后显示验证信息与失焦后显示验证信息
虽然说AngularJS的实时表单验证非常有用,非常高效方便,但是当用户还没有完成输入时便弹出一个错误提示,这种体验是非常糟糕的. 正常的表单验证逻辑应该是在用户提交表单后或完成当前字段中的输入后,再 ...
- OI分类
黑字:认识 红字:要学 未添加:要学 ├─模拟├─字符串│ ├─字符串基础│ ├─manacher│ ├─kmp│ ├─trie│ ├─ac自动机│ ├─后缀数组( ...