memcached学习笔记

Memcached安装与使用指南
本文详细介绍Memcached的安装步骤及客户端配置,并演示了通过PHP进行基本操作的方法,包括单条记录与批量数据的处理。
<?php 
//===========================================================================================================//
一、安装
.编译安装:需要先下载安装包,然后安装,需要工具Libevent
.依赖安装:使用系统自带的安装工具——yum(centos) | apt-get(ubuntu),安装的时候选择安装依赖包Libevent
.安装可以选择Memcached,而不是Memcache,因为它是Memcache的升级版本,运行速度更快

1.客户端安装:
	1.1  服务端安装目录默认是:/usr/bin/memecached
	1.2  # ps -ef | grep memcached :查看所有进程中进程名包含memcach的进程,ps命令用于监控进程,参数e表示监控全部等同于参数“A”,参数f是以ASCII字符显示树状结构以表明进程之间的关系,符号“|”是管道的意思,grep命令是一个强大的文本搜索命令,即全局正则表达式版本,使用权限是所有用户。
	1.3  启动命令:# /usr/bin/memcached -d -l 127.0.0.1 -p 11211 -m 150 -u cpt     参数-d表示以守护进程的模式启动,即terminal退出以后程序依然运行;-l表示ip;-p表示端口;-m是要分配给该进程的内存大小,以M为单位;-u表示用户身份

2.客户端安装:先安装Libmemcached,然后为PHP安装memcached扩展
	2.1  安装Libmemcached:https://launchpad.net/libmemcached
		.下载安装包libmemcached-1.0.18.tar.gz
		.解压:# tar zxvf libmemcached-1.0.18.tar.gz
		.配置路径:# ./configure  --prefix=/usr/lib/libmemcached
		.安装:# make && make install 
	2.2  PHP安装memcached扩展:http://pecl.php.net/package/memcached
		.下载扩展安装包:memcached-2.2.0.tgz
		.解压:# tar zxvf memcached-2.2.0.tgz
		.进入该目录: # cd memcached-2.2.0
		.运行phpize会多出一个配置文件:phpize
		.配置:# ./configure
			如果找不到php-config,请使用./configure --with-php-config=PATH,其中PATH是PHP的安装路径;
			如果找不到安装的扩展的目录(因为我们的Libmemcached安装在别的地方了),请加上参数指明扩展安装的地方 --with-libmemcached-dir=/usr/lib/libmemcached;
			如果不支持sasl.h,请加上参数说明 --disable-memecached-sasl
		.安装:# make && make install
		.安装成功后提示:Installing shared extensions:    /usr/lib/php/modules/
		.在php.ini配置文件最后追加扩展:# vim etc/php.ini,在文件底部G加入:extension=/usr/lib/php/modules/memcached.so 
		.重启服务器即可
	2.3 查看是否安装扩展完成:
		.# php -m | grep memcached
//============================================================================================================//
二、memcache类的操作和封装
1.系统类:
addServer/addServers/getStats/getVersion

2.数据类:
add/set/delete/flush/replace/increment/get

3.进阶类:
setMulti/deleteMulti/getMulti/getResultCode/getResultMessage

4.操作:
$memcache = new Memcached();
$memcache->addServer('127.0.0.1', 11211);

/*多台服务器*/
$ipArr = array(
	array('127.0.0.1', 11211),
	array('102.2.10.22', 11211),
	//...
);
$memcache->addServers($ipArr);

print_r($memcache->getStats());
print_r($memcache->getVersion());

/**
 * $memcache->add(key,val,timeout)
 * add方法第一个参数为key值,第二个参数为value值,第三个参数为失效时间,如果为0表示永久生效
 * add方法重复调用不会覆盖掉原来的值,要覆盖请使用replace()
 * 第一次调用脚本可以成功覆盖掉mkey,第二次就不能了
 */
$memcache->add('mkey','mvalue', 600);
echo $memcache->get('mkey')."\n";

$memcache->replace('mkey', 'mvalue2', 600);
echo $memcache->get('mkey')."\n";

/**
 * $memcache->set(key,val,timeout)方法当不存在的时候新建,存在的话进行覆盖
 */
$memcache->set('mkey', 'mvalue3', 600);
echo $memcache->get('mkey');

/**
 * $memcache->delete(key)方法删除某个key的value值
 */
$memcache->delete('mkey');
echo $memcache->get('mkey');

/**
 * $memcache->flush()清空掉memcached中的所有缓存
 */
$memcache->flush();
echo $memcache->get('mkey');

/**
 * $memcache->increment(key,offset,timeout)方法对整数按某个偏移量进行递增操作
 */
$memcache->set('num', 5, 0);
$memcache->increment('num', 5);
echo $memcache->get('num');

/**
 * $memcache->decrement(key,offset,timeout)方法对整数按某个偏移量进行递减操作
 */
//============================================================================================================//
三、利用memcached进行批量操作
$memcache = new Memcached();
$memcache->addServer('127.0.0.1', 11211);
/*memcached实现批量操作*/
$dataAry = array(
	'key' => 'val',
	'key1' => 'val1',
	'key2' => 'val2',
	'key3' => 'val3',
	'key4' => 'val4',
	'key5' => 'val5',
	'key6' => 'val6',
	'key7' => 'val7',
	'key8' => 'val8',
	'key9' => 'val9',
	'key10' => 'val10'
);

/**
 * $memcache->setMulti(array,timeout)批量处理数据
 */
$memcache->setMulti($dataAry,0);

/**
 * $memcache->getMulti(array())批量获取数据
 */
$result = $memcache->getMulti(array('key','key1','key2'));
print_r($result);
//输出
// Array
// (
//     [key] => val
//     [key1] => val1
//     [key2] => val2
// )

/**
 * $memcache->deleteMulti(array('key','key2'))删除多条数据
 */
$memcache->deleteMulti(array('key'));
echo $memcache->get('key')."\n";
echo $memcache->get('key1')."\n";
/**
 * $memcache->getResultCode()获取执行的结果代码:0为成功,非0失败,具体参考手册
 */
echo $memcache->getResultCode()."\n";
/**
 * $memcache->getResultMessage()获取操作结果的信息
 */
echo $memcache->getResultMessage()."\n";
//===========================================================================================================================//
四、封装自己的memcache类
//应具有如下特点:
//扩展性:既支持memcache又支持memcached
//可调试:
//尽量简便的操作,一个方法多种功能
//详见:http://benbird.cc/post/29



潮汐研究作为海洋科学的关键分支,融合了物理海洋学、地理信息系统及水利工程等多领域知识。TMD2.05.zip是一套基于MATLAB环境开发的潮汐专用分析工具集,为科研人员与工程实践者提供系统化的潮汐建模与计算支持。该工具箱通过模块化设计实现了两大核心功能: 在交互界面设计方面,工具箱构建了图形化操作环境,有效降低了非专业用户的操作门槛。通过预设参数输入模块(涵盖地理坐标、时间序列、测站数据等),用户可自主配置模型运行条件。界面集成数据加载、参数调整、可视化呈现及流程控制等标准化组件,将复杂的数值运算过程转化为可交互的操作流程。 在潮汐预测模块中,工具箱整合了谐波分解法与潮流要素解析法等数学模型。这些算法能够解构潮汐观测数据,识别关键影响要素(包括K1、O1、M2等核心分潮),并生成不同时间尺度的潮汐预报。基于这些模型,研究者可精准推算特定海域的潮位变化周期与振幅特征,为海洋工程建设、港湾规划设计及海洋生态研究提供定量依据。 该工具集在实践中的应用方向包括: - **潮汐动力解析**:通过多站点观测数据比对,揭示区域主导潮汐成分的时空分布规律 - **数值模型构建**:基于历史观测序列建立潮汐动力学模型,实现潮汐现象的数字化重构与预测 - **工程影响量化**:在海岸开发项目中评估人工构筑物对自然潮汐节律的扰动效应 - **极端事件模拟**:建立风暴潮与天文潮耦合模型,提升海洋灾害预警的时空精度 工具箱以"TMD"为主程序包,内含完整的函数库与示例脚本。用户部署后可通过MATLAB平台调用相关模块,参照技术文档完成全流程操作。这套工具集将专业计算能力与人性化操作界面有机结合,形成了从数据输入到成果输出的完整研究链条,显著提升了潮汐研究的工程适用性与科研效率。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值