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 ...
随机推荐
- errno 错误码
转自:http://baike.baidu.com/link?url=uX-q7K-TTL-5AFNT-hjhAP6fvgAwvsNkIMqJqJ3GEspYgtQXsovEEzpqmQ3ZmAgql ...
- Android UI组件学习
android.view.View类是全部UI组件的父类. 如果一些属性的内容本类找不到的时候一定要到父类之中进行查找. 所谓的学习组件的过程就是一个文档的查找过程. ※ Android之中所有的组件 ...
- AD7715
一.芯片概述 1.AD7715是一款适合低频测量应用的完整模拟前端,可直接接受来自传感器的低电平输入信号,并产生串行数字输出.AD7715采用Σ-Δ转换技术,可实现最高16位无失码性能. 2.CMOS ...
- 循环日期的shell
date="2015-09-23"enddate='2015-11-08'while [[ $date < $enddate ]] do date=`date -d &quo ...
- hdu 1228
Description 读入两个小于100的正整数A和B,计算A+B. 需要注意的是:A和B的每一位数字由对应的英文单词给出. Input 测试输入包含若干测试用例,每个测试用例占一行,格式为& ...
- Python实践:模块自动重载
一.概述 二.思路 三.实现 四.测试 1.开启自动重载(终端1) 2.修改模块(终端2) 3.查看实时输出(终端1) 五.参考源码 一.概述 开发Web程序时,通常会采用本地服务器进行调试,但如果代 ...
- 分享Kali Linux 2016.2最新镜像201609
分享Kali Linux 2016.2最新镜像20160919 Kali Linux官方继9月9日发布Kali Linux 2016.2的第36周镜像W36后,9月19日发布了Kali Linux ...
- BZOJ4327 : JSOI2012 玄武密码
对所有询问串建立AC自动机. 然后将母串在AC自动机上跑,每走到一个点x,从x点出发沿着fail指针能到的所有前缀都是匹配成功的,暴力向上走,碰到走过的就break,这样每个点最多只会被标记一次. 时 ...
- 小结:ac自动机
复杂度: 查找O(n),维护O(n) 概要: 应用了kmp的自匹配思想,在trie建图时维护一个fali指针,指向上一个匹配的点,这点是用bfs做到.匹配串的时候同样没匹配到就和kmp一样返回. 应用 ...
- HDU 4630 No Pain No Game(树状数组)
题目链接 看的别人的题解,离线之后,按r排序,枚举1-n,利用pre[j],存上次j的倍数出现的位置,树状数组里统计的当前位置到最后的最大值,树状数组是求区间最值其实应该很麻烦的,但是此题用法只是求到 ...