最近做仿ecshop前后台商城项目时候,要考虑到多次从数据库提取商品信息,为了提高访问速度和减少数据库压力,用memcached来提高访问速度,这里也简单记录,介绍下MemCache。
memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著[1] 。这是一套开放源代码软件,以BSD license授权发布。 MemCache的工作流程如下:先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性;当分配给memcached内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据。在 Memcached中可以保存的item数据量是没有限制的,只要内存足够 。 Memcached单进程在32位系统中最大使用内存为2G,若在64位系统则没有限制,这是由于32位系统限制单进程最多可使用2G内存,要使用更多内存,可以分多个端口开启多个Memcached进程 , 最大30天的数据过期时间,设置为永久的也会在这个时间过期,常量REALTIME_MAXDELTA 引用参考:http://blog.csdn.net/sd0902/article/details/16847623?locationNum=2&fps=1安装方法【window】 http://sishuok.com/forum/blogPost/list/3083.html http://www.cnblogs.com/freshman0216/archive/2013/01/19/2867994.html 将memcache服务器安装包解压到C:\memcached文件夹后,使用cmd命令窗口安装。 1>开始>运行:CMD(确定) 2>cd C:\memcached(回车) 3>memcached -d install(回车 这步执行安装) 4>memcached -d start(回车 这步执行启动memcache服务器,默认分配64M内存,使用11211端口) 此时memcache服务器已经可以正常使用了。
【Linux】 参考【http://my.oschina.net/flynewton/blog/9694】 下载地址 memcached下载地址:http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent。(如果你的系统已经安装了libevent,可以不用安装) 官网:http://www.monkey.org/~provos/libevent/
首先下载memcached 和 libevent 包。 Memcached用到了libevent这个库用于Socket的处理。下面是下载的两个包文件: libevent-1.4.14b-stable.tar.gz memcached-1.4.0.tar.gz上传这两个包到/scmgt/memcache目录(自建目录)下。解压并安装: tar -zxf libevent-1.4.14b-stable.tar.gz tar -zxf memcached-1.4.0.tar.gz cd libevent-1.4.14b-stable【如果usr没有权限就 ./configure –prefix=/scmgt/memcache/lib】 make && make install cd ../ memcached-1.4.0
【如果usr没有权限就 ./configure –prefix=/scmgt/memcache/lib –with-libevent=/scmgt/memcache/lib】 make && make install 4. 启动Memcached 完成上述操作后,memcached被安装/usr/local/bin/【/scmgt/memcache/lib/bin】目录下。启动Memcache的服务器的命令: /scmgt/memcache/lib/bin/memcached -d -m 1024 -u scmgt -l 10.25.193.16 -p 11211 -c 256 -P /scmgt/memcache/memcached.pid 【xx用法 ./memcached -d -m 2048 -p 11211】 参数说明: -d 选项是启动一个守护进程, -m 是分配给Memcache使用的内存数量,单位是MB,这里是1GB, -u 是运行Memcache的用户,这里是root, -l 是监听的服务器IP地址,如果有多个地址的话,以逗号隔开。这里指定了服务器的IP地址192.168.13.236, -p 是设置Memcache监听的端口,我这里设置了12001,最好是1024以上的端口, -c 选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定, -P 是设置保存Memcache的pid文件,我这里是保存在 /tmp/chenxinhan/memcached.pid, 5. 结束Memcache进程,执行: kill cat /tmp/chenxinhan/memcached.pid 或者: ps -aux | grep memcache 然后直接kill掉memcache进程。 6. 可以启动多个守护进程,但是端口不能一样。这样就可以在一台机器上拥有多个Memcached 7:增加到开机启动 # vi /etc/rc.local 增加:/usr/local/memcacheq/bin/memcacheq -d -r -uroot -p11212 -H /var/mcq/data -N -R -v -L 1024 -B 1024 > /var/mcq/logs/mq_error.log 2>&1