搜索
首页php教程php手册[原创] linux 下的 memcached 开发
[原创] linux 下的 memcached 开发Jun 13, 2016 am 09:42 AM
linuxmemcached公司即将原创开发这个

PS: 俺快给公司开了.因为公司即将倒闭.

memcached  这个东西是个十分好的东西.做为PHPer不懂用的话如果挤身于php高手之列呢.所以有此一章

在自己的LINUX 下配置好了 memcached   , 按照网上的配置访问问题都不大.网上的memcached的安装教程都挺正确的.

不过按照自己的环境要注意几点.

第一就是在安装 memcached 之前 必须先编译安装好  libevent  包.   这个有下.自己百度

第二就是  编译  libevent 包的时候记得是   ./configure --prefix=/usr         编译到   /usr 目录.

因为usr 目录下有个lib 目录.里面全都是  xx.so   xx.so.1  之类的LIB库.     

装完了libevent  以后  再开始 安装 memcached  .

装 memcached 也要注意.网上讲的也不是很好.

网上讲的是改php.ini 的 extension dir 地址.    其实只要我们在   编译生成  memcached.so 以后.放我们设置好的存放so的目录下就行了.

以上几点是我在安装时候的得到的.  自己看着办吧. 其实安装挺简单的.


然后就是使用 memcached 了.     使用memcached  有两种办法.第一种就是用pecl 包 的 memcached 模块.    不过这办法要编译.   第二种是使用 memcached-client .php 文件.  这个速度上当然不够好了.所以我选择了第一种方法.

使用memcached  其实挺简单的.不过也是看你使用的具体环境了.也有可能是复杂的.

现在我就一个一个对  pecl 的memcached 里面的方法 一个一个试.呵呵. 反正俺快没工作了.时间多......

1
Memcache::add    方法

这个方法就是在    往内存里面添加变量  挺爽看例子

 

如果变量已经存在内存中.那么就会返回 false  .  我只给出基本招式.自己灵活运用了.


Memcached:: set  方法

设置 变量在内存中的值

有参数 同   Memcached:: add  一样

1  为   变量在内存中的标志   2  为  变量的值    3为是否压缩标志   4为 变量在内存中的存活秒数

看例子吧.   昏  上不了图..太大.只能手写了

$mem = new Memcache;
$mem->connect('localhost',11211) or die("not connect");
!$mem->set('mykey','good job'') && die("not input memory");
echo($mem->get('mykey')); //没压缩前

!$mem->set('mykey','good job',MEMCACHE_COMPRESSED,50) && die("not input memory");
echo($mem->get('mykey')); // 压缩和设置了变量在内存中的存活时间
?>
压缩是否有用.如果我们把一个占字节大的变量存放在内存.当然压缩后占内存小拉.

?>

3   
Memcached :: get  方法

这个方法看名字就知道 是从内存中获取 变量 ,前面我们存过变量进去的嘛还记得吧.呵呵

使用方法很简单
看:
$mem=new Memcache;
$mem->connect('localhost',11211) or die("not connect");
if(!$mem->get('kesdy')){
    echo 'xx';
}

?>
如果要获取的变量之前没存过到内存或是已经过期.那么会返回空.

4
Memcache::connect  这个方法不用讲了吧.  看上面的所有例子都有用到.
第一个参数是:   memcache 服务器的IP地址..第二个参数是: memcache 的监听端口.  默认是11211

Memcache::pconnect   这个也不用说了吧 .. 呵呵    长连接
5  
Memcache :: replace()  方法

这个方法看名字就知道.是替换在内存中已存在的变量的值和参数等.

如果 变量在内存中已经存在 但我们想改变他的值最好就不要用 Memcache :: set () 方法.   在这种情况来说效率上  replace() 效率更快更好


上菜

$mem = new Memcache;
$mem->connect('localhost',11211);
$mem->set('mykey','xxeedd');
$mem->replace('mykey','dddddddddddddd');
echo($mem->get('mykey'));
?>

上面是输出   ddddddddddddddddddddd

可以看出  给替换了吧.呵呵

6   

Memcache::increment 方法

这个是对  内存变量的值为 数值的有效.  

$mem = new Memcache;
$mem->connect('localhost',11211);
$mem->set('mykey',5);
$mem->increment('mykey',2);  //这样的话   mykey  的值就自动加了 2  成了 7    
echo($mem->get('mykey'));
?>


Memcache::decrement 方法   和他刚好相反.


7  Memcache:: delete()  方法

这个方法是手动删除一个在内存中的变量.

$mem = new Memcache;
$mem->connect('localhost',11211);
$mem->set('mykey',5);
$mem->delete('mykey'); //删除,还可以带个参数是  在多少秒后进行删除.    $mem->delete('mykey',50);
echo($mem->get('mykey'));
?>

够简单的了.自己看下

8

Memcache :: flush()  

使存在内存中的所有变量全部失效.

用法也很简单.

$mem = new Memcache;
$mem->connect('localhost',11211);
$mem->set('mykey',5);
$mem->flush();
?>



恩基本讲完了.懂用这几个 东西.  memcached  基本也就那样了..

下面我试下  memcached  多进程 和集群下的效果如何.

以后再做讲解了..... memcached和mysql简单综合应用.rar(8.51 KB)

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
什么是linux设备节点什么是linux设备节点Apr 18, 2022 pm 08:10 PM

linux设备节点是应用程序和设备驱动程序沟通的一个桥梁;设备节点被创建在“/dev”,是连接内核与用户层的枢纽,相当于硬盘的inode一样的东西,记录了硬件设备的位置和信息。设备节点使用户可以与内核进行硬件的沟通,读写设备以及其他的操作。

Linux中open和fopen的区别有哪些Linux中open和fopen的区别有哪些Apr 29, 2022 pm 06:57 PM

区别:1、open是UNIX系统调用函数,而fopen是ANSIC标准中的C语言库函数;2、open的移植性没fopen好;3、fopen只能操纵普通正规文件,而open可以操作普通文件、网络套接字等;4、open无缓冲,fopen有缓冲。

linux中什么叫端口映射linux中什么叫端口映射May 09, 2022 pm 01:49 PM

端口映射又称端口转发,是指将外部主机的IP地址的端口映射到Intranet中的一台计算机,当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上;可以通过使用动态或固定的公共网络IP路由ADSL宽带路由器来实现。

linux中eof是什么linux中eof是什么May 07, 2022 pm 04:26 PM

在linux中,eof是自定义终止符,是“END Of File”的缩写;因为是自定义的终止符,所以eof就不是固定的,可以随意的设置别名,linux中按“ctrl+d”就代表eof,eof一般会配合cat命令用于多行文本输出,指文件末尾。

什么是linux交叉编译什么是linux交叉编译Apr 29, 2022 pm 06:47 PM

在linux中,交叉编译是指在一个平台上生成另一个平台上的可执行代码,即编译源代码的平台和执行源代码编译后程序的平台是两个不同的平台。使用交叉编译的原因:1、目标系统没有能力在其上进行本地编译;2、有能力进行源代码编译的平台与目标平台不同。

linux怎么判断pcre是否安装linux怎么判断pcre是否安装May 09, 2022 pm 04:14 PM

在linux中,可以利用“rpm -qa pcre”命令判断pcre是否安装;rpm命令专门用于管理各项套件,使用该命令后,若结果中出现pcre的版本信息,则表示pcre已经安装,若没有出现版本信息,则表示没有安装pcre。

linux怎么查询mac地址linux怎么查询mac地址Apr 24, 2022 pm 08:01 PM

linux查询mac地址的方法:1、打开系统,在桌面中点击鼠标右键,选择“打开终端”;2、在终端中,执行“ifconfig”命令,查看输出结果,在输出信息第四行中紧跟“ether”单词后的字符串就是mac地址。

linux中rpc是什么意思linux中rpc是什么意思May 07, 2022 pm 04:48 PM

在linux中,rpc是远程过程调用的意思,是Reomote Procedure Call的缩写,特指一种隐藏了过程调用时实际通信细节的IPC方法;linux中通过RPC可以充分利用非共享内存的多处理器环境,提高系统资源的利用率。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用