memcached 简介

memcached 简介
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

在中型网站中的应用
使用Memcache的网站一般流量都是比较大的,为了缓解数据库的压力,让Memcache作为一个缓存区域,把部分信息保存在内存中,在前端能够迅速的进行存取。那么一般的焦点就是集中在如何分担数据库压力和进行分布式,毕竟单台Memcache的内存容量的有限的。我这里简单提出我的个人看法,未经实践,权当参考。
[分布式应用]
Memcache本来支持分布式,我们客户端稍加改造,更好的支持。我们的key可以适当进行有规律的封装,比如以user为主的网站来说,每个用户都有UserID,那么可以按照固定的ID来进行提取和存取,比如1开头的用户保存在第一台Memcache服务器上,以2开头的用户的数据保存在第二台Mecache服务器上,存取数据都先按照User ID来进行相应的转换和存取。
但是这个有缺点,就是需要对User ID进行判断,如果业务不一致,或者其他类型的应用,可能不是那么合适,那么可以根据自己的实际业务来进行考虑,或者去想更合适的方法。

[ 减少数据库压力]

[ 减少数据库压力]
这个算是比较重要的,所有的数据基本上都是保存在数据库当中的,每次频繁的存取数据库,导致数据库性能急剧下降,无法同时服务更多的用户,比如MySQL,特别频繁的锁表,那么让Memcache来分担数据库的压力吧。我们需要一种改动比较小,并且能够不会大规模改变前端的方式来进行改变目前的架构。


20130802092712538.jpg

---------------------------------------------开始安装--------------------------------------

解决依赖:

1、yum install zlib-* zlib*

安装libevent(memcached 对此软件依赖很多,一定要安装)

wget https://github.com/downloads/libevent/libevent/libevent-1.4.11-stable.tar.gz

./configure --prefix=/usr/local/libevent

make && make install

安装memcached

wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz

./configure -prefix=/usr/local/memcached --with-libevent=/usr/local/libevent

make && make install

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libevent/lib

ln -s /usr/local/libevent/lib/libevent* /lib64/

启动memcached 服务端

/usr/local/memcached/bin/memcached -d -m 128 -l 127.0.0.1 -p 11211 -u root

启动参数详解:
-d 选项是启动一个守护进程-m是分配给Memcache使用的内存数量,单位是MB,我这里是128MB
-u 是运行Memcache的用户,我这里是root
-l 是监听的服务器IP地址,如果有多个地址的话,这里指定了服务器的IP地址127.0.0.1
-p 是设置Memcache监听的端口,这里设置了11211,最好是1024以上的端口,这里使用默认端口11211
-c 选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定
-P 是设置保存Memcache的pid文件,这里是保存在/var/run/memcached.pid


memcached 的启动和关闭:
启动:

1、/usr/local/memcached/bin/memcached -d -m 128 -l 127.0.0.1 -p 11211 -u root -P /var/run/memcached.pid

关闭:

killall -9 memcached     或者  kill `cat /var/run/memcached.pid`

实时取得stats数据:

echo stats | nc 127.0.0.1 11211

循环实时状态:

watch “echo stats | nc 127.0.0.1 11211

测试memcached 安装启动成功

telnet 127.0.0.1 11211

输入

stats

退出telnet :ctrl + ]    然后输入quit 

memcached监控

、memcache.php 这个东东算是最简单的了,只要支持php环境就能用,把这个文件放到你的网页存放目录下就可以了访问方法 http://ip/memcache.php

 

下载地址 http://livebookmark.net/memcachephp/memcachephp.zip
        http://blogimg.chinaunix.net/blog/upfile2/081230231118.zip
需要注意的是,使用之前要修改里面的几个选项
vim memcache.php
.....
define('ADMIN_USERNAME','memcache');    // 定义用户名
define('ADMIN_PASSWORD','password');    // 定义密码
.....
$MEMCACHE_SERVERS[] = 'mymemcache-server:11211'; //定义要查看的ip和端口
$MEMCACHE_SERVERS[] = 'mymemcache-server2:11212'; //可添加多个
其他内容略
上面的图就是访问时的效果,是不是很直观?