Memcache是什么
Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。
它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。
Memcache官方网站:http://www.danga.com/memcached ,更多详细的信息可以来这里了解 🙂
为什么会有Memcache和memcached两种名称?
其实Memcache是这个项目的名称,而memcached是它服务器端的主程序文件名,知道我的意思了把~~~~。一个是项目名称,一个是主程序文件名,在网上看到了很多人不明白,于是混用了。
Memcache的安装
分为两个过程:memcache服务器端的安装和memcached客户端的安装。
所谓服务器端的安装就是在服务器(一般都是linux系统)上安装Memcache实现数据的存储
所谓客户端的安装就是指php(或者其他程序,Memcache还有其他不错的api接口提供)去使用服务器端的Memcache提供的函数,需要php添加扩展。
具体的配置大家可以参考:
Linux下的Memcache安装:https://kimi.pub/257.html
Windows下的Memcache安装:https://kimi.pub/258.html
Memcache基础教程:https://kimi.pub/259.html
Discuz!的Memcache缓存实现:https://kimi.pub/261.html
Memcache协议中文版:https://kimi.pub/306.html
Memcache分布式部署方案:https://kimi.pub/395.html
Memcached的LRU算法:https://kimi.pub/449.html
PHP的Memcache
<?php
//连接
$mem = new Memcache;
$mem->connect("192.168.0.200", 12000);
//保存数据
$mem->set('key1', 'This is first value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val ."<br />";
//替换数据
$mem->replace('key1', 'This is replace value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br />";
//保存数组
$arr = array('aaa', 'bbb', 'ccc', 'ddd');
$mem->set('key2', $arr, 0, 60);
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br />";
//删除数据
$mem->delete('key1');
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br />";
//清除所有数据
$mem->flush();
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br />";
//关闭连接
$mem->close();
?>
如果正常的话,浏览器将输出:
Get key1 value: This is first value
Get key1 value: This is replace value
Get key2 value: Array ( [0] => aaa [1] => bbb [2] => ccc [3] => ddd )
Get key1 value:
Get key2 value:
我暂时还是先不 研究这个了…
原理memcached的最后一个d是daemon,我还以为是英语的过去式^_^。
@kewell 感谢说明哇
…晕啊 搜memcache安全又搜到你这来了…
呵呵 顺便看了下你的疯狂自拍 够自恋的
你是做什么工作的? 希望能跟你交流下 随便扯扯
刚看到你的【使用】那一块 哈哈 你的想法已经在我们的项目中实现了 select语句cache 而且你说的信息不及时 算是初步解决了吧
对了 想起个问题请教下 increment 可不可以生成唯一ID?
就是说 同一时间 同时执行 increment
囧
GOOGLE memcache 结果到你的网站上来了
XX水学长 你还真得很自恋啊
看前水 看完再顶
真不错
关于memcache的使用能再多说一些就好了
奇距是怎么做的呢?
我去试试按照userId来分布存取mem数据
memcache的安全,我的做法是一个-l改IP,一个是改端口。VPS上我用-l 127.0.0.1
搜memcache数组运用,跑到这里来了。
老哥,你实在是比较闷骚啊,你的那一大堆照片看得我心神不宁啊.
在学Memcached,以后还会多来的,呵呵
天哪?好复杂啊!只是PHP得一个拓展?奇怪
好文章,顶下
有点问题吧。向memcache存数据,取的时候为什么不判断下,如果memcache有之前存的,直接从memcache取数据了。你的memcache没有发挥作用哈、。
@Sweet, 这个是代码演示,不是实例演示,呵呵
不错,顶一下下!!!~~~~~~水头,时刻关注~~~
good!赞一个!
请问它开辟的1G内存空间可以改喵?比如改成4G
学习了
文章写的不错,memcache确实是好东西,免费好用。哈哈哈!
好文,好博客,果断关注,希望博主多多分享
现在也在纠结这个缓存如何及时更新的问题
sdfsf
文章总结的很好,赞一个! 个人转发了一篇,保留原文地址连接!
我刚好想写个memcache博文,看到博主的博文我感觉我拿不出手了
看第一条评论看到时间我都迷茫了 想想2007的时候自己还在干嘛 现在要用的东西学的写的刚接触到的 估计都是人家用剩下的渣………………….