Memcache基础教程
本文最后更新于 5943 天前,其中的信息可能已经有所发展或是发生改变。

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:

本文以下内容由于已经不具备可参考性而被删除,删除时间为2023年11月17日。

评论

  1. 16年前
    2007-12-12 2:19:51

    我暂时还是先不 研究这个了…

  2. kewell
    16年前
    2008-4-18 22:40:45

    原理memcached的最后一个d是daemon,我还以为是英语的过去式^_^。

  3. 博主
    16年前
    2008-4-19 20:19:45

    @kewell 感谢说明哇

  4. 仰望星空的狼
    15年前
    2009-1-05 12:34:13

    …晕啊 搜memcache安全又搜到你这来了…
    呵呵 顺便看了下你的疯狂自拍 够自恋的
    你是做什么工作的? 希望能跟你交流下 随便扯扯

  5. 仰望星空的狼
    15年前
    2009-1-05 13:15:53

    刚看到你的【使用】那一块 哈哈 你的想法已经在我们的项目中实现了 select语句cache 而且你说的信息不及时 算是初步解决了吧

  6. 仰望星空的狼
    15年前
    2009-1-05 15:58:36

    对了 想起个问题请教下 increment 可不可以生成唯一ID?
    就是说 同一时间 同时执行 increment

  7. 15年前
    2009-4-08 21:42:06


    GOOGLE memcache 结果到你的网站上来了
    XX水学长 你还真得很自恋啊

  8. 15年前
    2009-4-08 22:12:42

    看前水 看完再顶
    真不错
    关于memcache的使用能再多说一些就好了
    奇距是怎么做的呢?
    我去试试按照userId来分布存取mem数据

  9. shiny
    15年前
    2009-5-25 13:46:10

    memcache的安全,我的做法是一个-l改IP,一个是改端口。VPS上我用-l 127.0.0.1

  10. 14年前
    2009-11-12 9:51:08

    搜memcache数组运用,跑到这里来了。

  11. 龙骧楼
    14年前
    2009-12-28 14:44:05

    老哥,你实在是比较闷骚啊,你的那一大堆照片看得我心神不宁啊.
    在学Memcached,以后还会多来的,呵呵

  12. abc
    14年前
    2010-1-13 16:23:01

    天哪?好复杂啊!只是PHP得一个拓展?奇怪

  13. saint
    14年前
    2010-1-21 15:43:12

    好文章,顶下

  14. Sweet
    14年前
    2010-7-01 18:12:31

    有点问题吧。向memcache存数据,取的时候为什么不判断下,如果memcache有之前存的,直接从memcache取数据了。你的memcache没有发挥作用哈、。

    • 博主
      Sweet
      14年前
      2010-7-30 11:32:49

      @Sweet, 这个是代码演示,不是实例演示,呵呵

  15. 13年前
    2011-5-30 23:32:05

    不错,顶一下下!!!~~~~~~水头,时刻关注~~~

  16. 12年前
    2011-10-28 9:56:58

    good!赞一个!

  17. 11年前
    2013-3-22 23:10:02

    请问它开辟的1G内存空间可以改喵?比如改成4G

  18. 丰情
    11年前
    2013-7-18 10:13:53

    学习了

  19. 11年前
    2013-7-24 15:30:20

    ript>alter(‘Holle test!’)ript>

  20. 10年前
    2014-2-12 17:12:44

    文章写的不错,memcache确实是好东西,免费好用。哈哈哈!

  21. 10年前
    2014-2-16 11:37:13

    好文,好博客,果断关注,希望博主多多分享

  22. 9年前
    2014-12-04 14:57:45

    现在也在纠结这个缓存如何及时更新的问题

  23. 8年前
    2015-11-12 17:29:34

    sdfsf

  24. 悟空
    7年前
    2016-12-08 10:06:52

    文章总结的很好,赞一个! 个人转发了一篇,保留原文地址连接!

  25. 7年前
    2017-2-03 22:39:07

    我刚好想写个memcache博文,看到博主的博文我感觉我拿不出手了

  26. 游游客
    7年前
    2017-8-19 10:16:28

    看第一条评论看到时间我都迷茫了 想想2007的时候自己还在干嘛 现在要用的东西学的写的刚接触到的 估计都是人家用剩下的渣………………….

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇