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 ...
随机推荐
- WPF常用方法,事件驱动和控件遍历
//初始化数据,默认选中第一项,事件驱动 RadioButton btn = FuncClass.GetChildObject<RadioButton>(this.stackPanel1, ...
- Java Hour 17 来个CURD吧(二)
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. 突然想到我最近一直在追的小说,作者每天都会更新两章,而且质量挺高.所以从这篇开 ...
- 简单几何(直线与圆的交点) ZOJ Collision 3728
题目传送门 题意:有两个一大一小的同心圆,圆心在原点,大圆外有一小圆,其圆心有一个速度(vx, vy),如果碰到了小圆会反弹,问该圆在大圆内运动的时间 分析:将圆外的小圆看成一个点,判断该直线与同心圆 ...
- 【python游戏编程之旅】第三篇---pygame事件与设备轮询
本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 在上一篇博客中,我们学习了pygame中的IO.数据http://www.cnblogs.com/msxh/ ...
- lua if
function fact(n) then else ) end end print("输入一个数") a=io.read("*number") print(f ...
- BZOJ3563 : DZY Loves Chinese
想法题,由于K是加密的,但是通过读入我们可以自己数出来这一行有几个数, 所以可以直接反解出之前回答为连通的个数 至于最后一个询问就用并查集暴力回答 var n,i,m,s,k,j,q : longin ...
- BZOJ1767 : [Ceoi2009]harbingers
设d[i]表示i到1的距离 f[i]=w[i]+min(f[j]+(d[i]-d[j])*v[i])=w[i]+d[i]*v[i]+min(-d[j]*v[i]+f[j]) 对这棵树进行点分治,每次递 ...
- codevs 1060
题目大意: 有2n张票,分别有A,B两类,求最后两个人拿到同种票的概率.n<=1250; 想想这题应该是组合啊..但是到底是组合还是排列..如果是组合, 概率为:1-两种票都取了n-1张的情况, ...
- TYVJ P1068 STR Label:KMP匹配 不懂
描述 给你两个串A,B,可以得到从A的任意位开始的子串和B匹配的长度.给定K个询问,对于每个询问给定一个x,求出匹配长度恰为x的位置有多少个.N,M,K<=200000 输入格式 第一行三个数 ...
- BZOJ3091: 城市旅行
Description Input Output Sample Input 4 5 1 3 2 5 1 2 1 3 2 4 4 2 4 1 2 4 2 3 4 3 1 4 1 4 1 4 Sample ...