Below you will find pages that utilize the taxonomy term “Memcache”
October 27, 2011
php客户端memcached的安装教程
"\u003cp\u003e我们在上篇文章里()介绍了LNMP的安装方法.只安装了memcache客户端.有些用户可能需要memcached这种客户端的.这里介绍一种php客户端memcached的安装方法.\u003c/p\u003e\n\u003cp\u003e之前在安装memcache时有提到memcached客户端是叫memcache,其实还有一个基于libmemcached的客户端叫memcached,据说性能更好,功能也更多。参考:\u003c/p\u003e\n\u003cp\u003ememcache的官方主页: \u003ca href=\"http://pecl.php.net/package/memcache\"\u003ehttp://pecl.php.net/package/memcache\u003c/a\u003e\nmemcached的官方主页: \u003ca href=\"http://pecl.php.net/package/memcached\"\u003ehttp://pecl.php.net/package/memcached\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下是我安装Memcached版本的PHP模块的过程记录:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e#wget http://download.tangent.org/libmemcached-0.9.tar.gz\n#tar zxf libmemcached-0.9.tar.gz\n#cd libmemcached-0.9\n#./configure --prefix=/usr/local/libmemcached --with-memcached\n#make …\u003c/code\u003e\u003c/pre\u003e"
October 19, 2011
遍历memcache中的key和value
"\u003cp\u003e\u003cstrong\u003e什么是\u003c/strong\u003e \u003cstrong\u003ememcache\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003ememcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e为什么要遍历\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e目前,用到memcache的公司和网站也越来越多。Memcache的客户端操作一般都只提供了get,set等简单的操作,这些操作都是非常高效的。 虽然memcache是个key-value存储的系统,但是在某些时候,我们可能需要遍历memcache的数据。\u003c/p\u003e\n\u003cp\u003e通过使用memcache 内置方法Memcache::getExtendedStats,首先获得items信息。\u003c/p\u003e\n\u003cp\u003e最后得到的解决类似与\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;php\n$memcache = new Memcache();\n$all_items = …\u003c/code\u003e\u003c/pre\u003e"
October 19, 2011
memcache的addServer的故障转移机制
"\u003cp\u003e如果有多台memcached服务器端(当然其他支持memcache协议的服务前端都可以,比如Tokyo Tyrant),最好使用$memcache-\u0026gt;addServer 来连接服务前端。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e连接示例:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e$mem_conf = array(\n array(\u0026#39;host\u0026#39;=\u0026gt;\u0026#39;192.168.0.11\u0026#39;, \u0026#39;port\u0026#39;=\u0026gt;\u0026#39;11211\u0026#39;),\n array(\u0026#39;host\u0026#39;=\u0026gt;\u0026#39;192.168.0.12\u0026#39;, \u0026#39;port\u0026#39;=\u0026gt;\u0026#39;11211\u0026#39;),\n array(\u0026#39;host\u0026#39;=\u0026gt;\u0026#39;192.168.0.13\u0026#39;, \u0026#39;port\u0026#39;=\u0026gt;\u0026#39;11211\u0026#39;)\n);\n\n$memcache = new Memcache ( );\nforeach ( $mem_conf as $v ) {\n $memcache-\u0026gt;addServer ( $v …\u003c/code\u003e\u003c/pre\u003e"
June 15, 2011
Linux下的Memcache安装
"\u003cp\u003e服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 。\n下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz\n另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3。(如果你的系统已经安装了libevent,可以不用安装)\n官网: \u003ca href=\"http://www.monkey.org/~provos/libevent/\"\u003ehttp://www.monkey.org/~provos/libevent/\u003c/a\u003e\n下载: \u003ca href=\"http://www.monkey.org/~provos/libevent-1.3.tar.gz\"\u003ehttp://www.monkey.org/~provos/libevent-1.3.tar.gz\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e用wget指令直接下载这两个东西.下载回源文件后。\n1.先安装libevent。这个东西在配置时需要指定一个安装路径,即./configure –prefix=/usr;然后make;然后make install;\u003c/p\u003e\n\u003cp\u003e2.再安装memcached,只是需要在配置时需要指定libevent的安装路径即./configure –with-libevent=/usr;然 …\u003c/p\u003e"
April 5, 2011
Memcache基础教程
"\u003cp\u003e\u003cstrong\u003eMemcache是什么\u003c/strong\u003e\nMemcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。\n它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。\nMemcache官方网站:http://www.danga.com/memcached,更多详细的信息可以来这里了解 .\u003c/p\u003e\n\u003cp\u003e为什么会有Memcache和memcached两种名称?\n其实Memcache是这个项目的名称,而memcached是它服务器端的主程序文件名,知道我的意思了把~~~~。一个是项目名称,一个是主程序文件名,在网上看到了很多人不明白,于是混用了。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMemcache的安装\u003c/strong\u003e\n分为两个过程:memcache服务器端的安装和memcached客户端的安装。\n所谓服务器端的安装就是在服务器(一般都是linux系统)上安装Memcache实现数据的存储\n所谓客户端的安装就是指php(或者其他程序,Memcache还有其他不错 …\u003c/p\u003e"
March 23, 2011
遍历memcache中已缓存的key
"\u003cp\u003e最近需要做一个缓存管理的功能。其中有一个需要模糊匹配memcached的key然后进行删除匹配上的key对应的数据。\u003c/p\u003e\n\u003cp\u003e难点在于memcache 没有提供模糊匹配key删除缓存的功能,也没有提供遍历memcache key的功能。在网上search了下,\u003c/p\u003e\n\u003cp\u003e点击10个连接有9个都是一篇文章的copy。网上最流行的方法发现key不能正确的获得。baidu google 全用上了就是没有解决。。。\u003c/p\u003e\n\u003cp\u003e最后还是抱着试试的心态,终于把问题给解决了。废话少说。说说,我实现的代码:\u003c/p\u003e\n\u003cp\u003e遍历memcache的可以需要有一下几个步骤:\u003c/p\u003e\n\u003cp\u003e1、通过使用memcache 内置方法Memcache::getExtendedStats,首先获得items信息。\u003c/p\u003e\n\u003cp\u003e最后得到的解决类似与\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\n 1 $memcache = new Memcache();\n 2\n 3 $all_items = $memcache-\u0026gt;getExtendedStats(\u0026#39;items\u0026#39;);\n 4\n 5 var_export($all_items);\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\n 1 array (\n 2 …\u003c/code\u003e\u003c/pre\u003e"
March 23, 2011
windows环境下memcache服务器使用经验
"\u003cp\u003e将memcache服务器安装包解压到C:\\memcached文件夹后,使用cmd命令窗口安装。\u003c/p\u003e\n\u003cp\u003e1\u0026gt;开始\u0026gt;运行:CMD(确定)\u003c/p\u003e\n\u003cp\u003e2\u0026gt;cd C:\\memcached(回车)\u003c/p\u003e\n\u003cp\u003e3\u0026gt;memcached -d install(回车 这步执行安装)\u003c/p\u003e\n\u003cp\u003e4\u0026gt;memcached -d start(回车 这步执行启动memcache服务器,默认分配64M内存,使用11211端口)\u003c/p\u003e\n\u003cp\u003e此时memcache服务器已经可以正常使用了。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ememcache服务器安全:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eMemcache服务器端都是直接通过客户端连接后直接操作,没有任何的验证过程,这样如果服务器是直接暴露在互联网上的话是比较危险,轻则数据泄 露被其他无关人员查看,重则服务器被入侵,况且里面可能存在一些我们未知的bug或者是缓冲区溢出的情况,这些都是我们未知的,所以危险性是可以预见的。 为了安全起见,做两点建议,能够稍微的防止黑客的入侵或者数据的泄露。\u003c/p\u003e\n\u003cp\u003e现在就关于修改memcache服务器配置的问题说明如下:\u003c/p\u003e\n\u003cp\u003e1\u0026gt;用内网ip的方式提供web应用服务器调用,不允许直接通过外网调用,如将memcache服务器放 …\u003c/p\u003e"
March 23, 2011
freebsd+php+memcache、memcached安装和使用
"\u003cp\u003e来源: \u003ca href=\"http://www.lifecrunch.biz/archives/55\"\u003ehttp://www.lifecrunch.biz/archives/55\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"memcache-介绍\"\u003eMemcache 介绍\u003c/h2\u003e\n\u003cp\u003ememcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图 像、视频、文件以及数据库检索的结果等。Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。起初作 者编写它可能是为了提高动态网页应用,为了减轻数据库检索的压力,来做的这个缓存系统。它的缓存是一种分布式的,也就是可以允许不同主机上的多个用户同时 访问这个缓存系统, 这种方法不仅解决了共享内存只能是单机的弊端,同时也解决了数据库检索的压力,最大的优点是提高了访问获取数据的速度!基于memcache作者对分布式 cache的理解和解决方案。 memcache完全可以用到其他地方 比如分布式数据库, 分布式计算等领域。\u003c/p\u003e\n\u003cp\u003eMemcache官方网站: …\u003c/p\u003e"
March 23, 2011
Memcache VS Memcached VS MemcacheDB
"\u003cp\u003e1、 简单讲Memcache和Memcached都讲的是同一个开源项目http://memcached.org/,只不过Memcached一般指的是后台的cache server(其实也是一个客户端的,参考php手册).而Memcache指的访问cache server的客户端。Memcached提供了两种访问协议,ASCII和Binary。\u003c/p\u003e\n\u003cp\u003e2、 MemcacheDB=Memcached+BerkeleyDB组成的轻量的持久数据库,与前两者是不同的两个东西。\u003c/p\u003e\n\u003cp\u003e3、作为数据库就要讲究consistency,但是Memcached是一种分布式的缓存机制,因此并不严格要求consistency,而且实际上每个memcached server之间本身不通讯也不共享,所谓的分布式是由memcached的客户端程序来决定的。一般分布式算法采用基于server节点数的取余法,这种方法以node数为基础,因此增减服务器就会造成很大hash失效问题。所以改进的算法一般采用consistent hash算法,这种算法取消了以服务器节点数作为基数的理念,而是直接对服务器的节点进行hash,然后散布 …\u003c/p\u003e"
March 23, 2011
Memcache的安全性
"\u003cp\u003eMemcache服务器端都是直接通过客户端连接后直接操作,没有任何的验证过程,这样如果服务器是直接暴露在互联网上的话是比较危险,轻则数据泄 露被其他无关人员查看,重则服务器被入侵,因为Mecache是以root权限运行的,况且里面可能存在一些我们未知的bug或者是缓冲区溢出的情况,这 些都是我们未知的,所以危险性是可以预见的。为了安全起见,我做两点建议,能够稍微的防止黑客的入侵或者数据的泄露。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cem\u003e内网访问\u003c/em\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e最好把两台服务器之间的访问是内网形态的,一般是Web服务器跟Memcache服务器之间。普遍的服务器都是有两块网卡,一块指向互联网,一块指向内 网,那么就让Web服务器通过内网的网卡来访问Memcache服务器,我们Memcache的服务器上启动的时候就监听内网的IP地址和端口,内网间的 访问能够有效阻止其他非法的访问。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ememcached -d -m 1024 -u root -l 192.168.0.200 -p 11211 -c 1024 -P /tmp/memcached.pid\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003eMemcache服务器端设置监听通过内网的192.168.0.200的ip的11211端口,占 …\u003c/p\u003e"
November 24, 2010
Memcache mutex设计模式
"\u003cp\u003e周六的S2 \u003ca href=\"http://www.s2forum.org/1/topic/\"\u003eWeb 2.0技术沙龙\u003c/a\u003e上介绍了memcache中使用mutex场景(文后要演讲稿),有网友对详情感兴趣,简单介绍如下。\u003c/p\u003e\n\u003ch3 id=\"场景\"\u003e场景\u003c/h3\u003e\n\u003cp\u003eMutex主要用于有大量并发访问并存在cache过期的场合,如\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e首页top 10, 由数据库加载到memcache缓存n分钟\u003c/li\u003e\n\u003cli\u003e微博中名人的content cache, 一旦不存在会大量请求不能命中并加载数据库\u003c/li\u003e\n\u003cli\u003e需要执行多个IO操作生成的数据存在cache中, 比如查询db多次\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"问题\"\u003e问题\u003c/h3\u003e\n\u003cp\u003e在大并发的场合,当cache失效时,大量并发同时取不到cache,会同一瞬间去访问db并回设cache,可能会给系统带来潜在的超负荷风险。\u003cstrong\u003e我们曾经在线上系统出现过类似故障\u003c/strong\u003e。\u003c/p\u003e\n\u003ch3 id=\"解决方法\"\u003e解决方法\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003e方法一\u003c/strong\u003e\n在load db之前先add一个mutex key, mutex key add成功之后再去做加载db, 如果add失败则sleep之后重试读取原cache数据。为了防止死锁,mutex key也需要设置过期时间。伪代码如下\n(\u003cem\u003e注:下文伪代码仅供了解思路,可能存在bug,欢迎随时指出。\u003c/em\u003e)\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eif (memcache.get(key) == null) {\n // 3 min …\u003c/code\u003e\u003c/pre\u003e"
April 1, 2010
MySQL Memcache_engine的安装与使用[原创]
"\u003cp\u003e[文章作者:张宴 本文版本:v1.1 最后修改:2008.09.09 转载请注明原文链接: \u003ca href=\"http://blog.s135.com/post/357/\"\u003ehttp://blog.s135.com/post/357/\u003c/a\u003e]\u003c/p\u003e\n\u003cp\u003e鉴于国内外还没有人撰写如何安装Memcache_engine的文章,于是,我根据自己的编译安装步骤,写下此文。\u003c/p\u003e\n\u003cp\u003eMemcache_engine是一个MySQL 5.1数据库的存储引擎,它能够让用户通过标准的SQL语句(SELECT/UPDATE/INSERTE/DELETE)访问Memcached(还支 持新浪的 \u003ca href=\"http://www.memcachedb.org/\"\u003eMemcachedb\u003c/a\u003e、 \u003ca href=\"http://code.google.com/p/dbcached\"\u003edbcached\u003c/a\u003e)中 存放的数据。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e限制:\u003c/strong\u003e\n1、Memcache表必须有主键。\n2、只能使用主 键去查询,即只能使用SELECT … FROM … WHERE id = … 方式去查询。\n3、不支持自增ID。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e安装与使用:\u003c/strong\u003e\n1、编译安装memcache_engine的步骤:\u003c/p\u003e\n\u003cp\u003ecd /tmp\u003c/p\u003e\n\u003cp\u003ewget …\u003c/p\u003e"
October 2, 2008
[精典教程]freebsd下安装mysql,apache,php,phpmyadmin记录
"\u003cp\u003e第一次在FREEBSD下配置环境,感觉好爽,安装的时候也参考了别人的介绍,在此表示感谢。\u003c/p\u003e\n\u003cp\u003e为了方便以后的操作,现在记录写下来。\u003c/p\u003e\n\u003cp\u003e**安装MYSQL时要注意:\n** mysql默认数据库放在/var分区里,如果你的数据库很大,那么你需要在前面分区的时候把/var分区分到足够大,\n如果你想改变它的安装目录,例如安装到:/usr/db.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003e#cd /usr/ports/databases/mysql51-server\n\u003c/strong\u003e \u003cstrong\u003e#make WITH_CHARSET=utf8\u003c/strong\u003e \u003cstrong\u003eWITH_XCHARSET=all\u003c/strong\u003e \u003cstrong\u003eWITH_PROC_SCOPE_PTH=yes SKIP_DNS_CHECK=yes BUILD_OPTIMIZED=yes install clean\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e#cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf\u003c/strong\u003e\n\u003cstrong\u003e#/usr/local/bin/mysql_install_db\n#chown -R mysql:mysql /var/db/mysql\n#/usr/local/bin/mysqld_safe \u0026amp; //启动mysql …\u003c/strong\u003e\u003c/p\u003e\u003c/blockquote\u003e"
September 24, 2008
Windows下的Memcache安装
"\u003ch2 id=\"windows下的memcache安装\"\u003eWindows下的Memcache安装\u003c/h2\u003e\n\u003cp\u003e不用说了,这便是 \u003ca href=\"http://www.oschina.net/project/355\"\u003ememcached\u003c/a\u003e 在Windows系统下的版本。\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2008/09/memcached_win.zip\"\u003e(点击这里下载memcached for win32)\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWindows下的Memcache安装\u003c/strong\u003e:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003e下载 \u003ca href=\"http://jehiah.cz/projects/memcached-win32\"\u003ememcache\u003c/a\u003e 的windows稳定版,解压放某个盘下面,比如在c:\\memcached\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e在终端(也即cmd命令界面)下输入 ‘c:\\memcached\\memcached.exe -d install’ 安装\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e再输入: ‘c:\\memcached\\memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e4.下载 \u003ca href=\"http://pecl4win.php.net/list.php\"\u003ephp_memcache.dll\u003c/a\u003e,请自己查找对应的php版本的文件\u003c/p\u003e\n\u003col start=\"5\"\u003e\n\u003cli\u003e在C:\\windows\\php.ini 加入一行 ‘extension=php_memcache.dll’\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!\u003c/p\u003e\n\u003cp\u003e7.如果要卸载的话,可以执 …\u003c/p\u003e"
September 24, 2008
memcached与memcache的区别
"\u003cp\u003ememcached 像是一个后台服务器(也有客户端的memcached),memcache是php的一个模块,需要编译,像是一个客户端,memcached 和 memcache 是紧密结合的两个东西。\u003c/p\u003e\n\u003cp\u003e另外memcached也是一个客户端的.这点可以参考php手册得知.两者的区别也可以参考:\u003c/p\u003e\n\u003cp\u003e有关linux下memcache和memcached的安装方法请参考:\u003c/p\u003e\n\u003cp\u003e================================\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e说法一:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e两个不同版本的php的memcached的客户端\u003c/p\u003e\n\u003cp\u003enew memcache是pecl扩展库版本\nnew memcached是libmemcached版本\n功能差不多.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e说法二:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMemcache是什么?\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eMemcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。\n它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。\nMemcached是简单而强大的。它简单的设计促进迅速部署,易于发展 …\u003c/p\u003e"