memcached 简介
memcached 简介
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
在中型网站中的应用
使用Memcache的网站一般流量都是比较大的,为了缓解数据库的压力,让Memcache作为一个缓存区域,把部分信息保存在内存中,在前端能够迅速的进行存取。那么一般的焦点就是集中在如何分担数据库压力和进行分布式,毕竟单台Memcache的内存容量的有限的。我这里简单提出我的个人看法,未经实践,权当参考。
[分布式应用]
Memcache本来支持分布式,我们客户端稍加改造,更好的支持。我们的key可以适当进行有规律的封装,比如以user为主的网站来说,每个用户都有UserID,那么可以按照固定的ID来进行提取和存取,比如1开头的用户保存在第一台Memcache服务器上,以2开头的用户的数据保存在第二台Mecache服务器上,存取数据都先按照User ID来进行相应的转换和存取。
但是这个有缺点,就是需要对User ID进行判断,如果业务不一致,或者其他类型的应用,可能不是那么合适,那么可以根据自己的实际业务来进行考虑,或者去想更合适的方法。
[ 减少数据库压力]
[ 减少数据库压力]
这个算是比较重要的,所有的数据基本上都是保存在数据库当中的,每次频繁的存取数据库,导致数据库性能急剧下降,无法同时服务更多的用户,比如MySQL,特别频繁的锁表,那么让Memcache来分担数据库的压力吧。我们需要一种改动比较小,并且能够不会大规模改变前端的方式来进行改变目前的架构。
---------------------------------------------开始安装--------------------------------------
解决依赖:
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'; //可添加多个
其他内容略
上面的图就是访问时的效果,是不是很直观?
转载于:https://blog.51cto.com/lookingdream/1794280