memcached介绍、安装"/>
memcached介绍、安装
引言:对于memcached的个人愚见
memcached作为缓存,从实际例子出发,来说明缓存的作用:
比如一个网站时时刻刻承受着来自浏览器的访问请求,浏览器访问各种各样的资源,如果网站对于客户端请求的每个资源都去自己的数据库去查找的话,那么随着浏览器请求量的激增,势必加剧网站对数据库的请求,当请求量到达一定峰值并且数据库服务器处理不了这些请求时,将导致拥塞甚至会击垮数据库服务器。
==》 因此,网站对于浏览器经常访问的资源进行备份,即不是每次请求数据都通过IO读取数据库磁盘的方式,而是将热门数据始终存放在内存中,当访问一个数据时,先从缓存中去查找,如果缓存中有就直接返回,如果没有再去数据库中查找。 ==> 这样将会大大地降低对数据库服务器地请求,并且还能加快对数据的查找(因为访问缓存比访问数据库快非常非常多) ==>这就是memcached存在的重大意义!
1、memcached介绍
自由&开放源码,高性能,分布式的内存对象缓存系统
NoSQL—not only sql,不仅仅是关系型数据库
显著特点:key-value键值对存储,如memcached、redis
2、Linux下源代码安装
memcached
wget 下载最新版本
tar -zxvf memcached-1.x.x.tar.gz 解压源码cd memcached-1.x.x 进入目录
./configure --prefix=/usr/local/memcached 配置
make && make test 编译
sudo make install 安装
3、查看memcached的各种选项
[gjw@localhost memcached-1.5.12]$ memcached -h
memcached 1.5.12
-p, --port=<num> TCP port to listen on (default: 11211) 默认监听端口11211
-d, --daemon run as a daemon 将memcached安装成守护进程
...
-u, --user=<user> assume identity of <username> (only when run as root) 用哪个用户执行
-m, --memory-limit=<num> item memory in megabytes (default: 64 MB) 指定最大占64M内存
-c, --conn-limit=<num> max simultaneous connections (default: 1024) 最大允许多少个客户端连接上来
...
-v, --verbose verbose (print errors/warnings while in event loop) 把输出信息打印出来
-vv very verbose (also print client commands/responses) 把错误信息打印出来
-vvv extremely verbose (internal state transitions)
...
-f, --slab-growth-factor=<num> chunk size growth factor (default: 1.25) 增长因子
4、启动
Memcached
(1) 作为前台程序启动memcached
[gjw@localhost memcached-1.5.12]$ /usr/local/memcached/bin/memcached -p 11211 -m 64m -vv
slab class 1: chunk size 96 perslab 10922
slab class 2: chunk size 120 perslab 8738
slab class 3: chunk size 152 perslab 6898
… …
slab class 38: chunk size 394840 perslab 2
slab class 39: chunk size 524288 perslab 2
<26 server listening (auto-negotiate)
<27 server listening (auto-negotiate)
注解:此处大量出现了slab class、chunk,它们实际上是memcached的内存分配方式,详细请参考文章《Memcached之内存分配机制》
(2) 作为后台服务程序运行启动memcached
/usr/local/memcached/bin/memcached -p 11211 -m 64m -d
5、memcached的连接
memcached客户端与服务器的通信比较简单,使用的是基于文本的协议,而不是二进制协议。因此可以通过telnet即可与memcached作交互,见下:
[gjw@localhost ~]$ telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.set name 0 0 6
oldboy
STORED
get name
VALUE name 0 6
oldboy
END
更多推荐
memcached介绍、安装
发布评论