一、简介
html
Memcached 常被用来加速应用程序的处理,在这里,咱们将着重于介绍将它部署于应用程序和环境中的最佳实践。这包括应该存储或不该存储哪些、如何处理数据的灵活分布以 及如何调节用来更新 memcached 和所存储数据的方法。全部的应用程序,特别是不少 web 应用程序都须要优化它们访问客户机和将信息返回至客户机的速度。但是,一般,返回的都是相同的信息。从数据源(数据库或文件系统)加载数据十分低效,如果 每次想要访问该信息时都运行相同的查询,就尤显低效。要是能从内存中直接加载这些信息,可想而知速度会快多少倍。
虽然不少 web 服务器均可被配置成使用缓存发回信息,但那与大多数应用程序的动态特性没法相适。而这正是 memcached 的用武之地。它提供了一个通用的内存存储器,可保存任何东西,包括本地语言的对象,这就让您能够存储各类各样的信息并能够从诸多的应用程序和环境访问这些信息。java
memcached存储的是key/value的键值对,可是值必须是可序列化的对象(这里我说的java),还能够是json,xml,html 等,这里要说明memcached集群,server端之间并不会进行相互的通讯,通讯彻底由你的客户端来完成,你只需在客户端规定好你的key值,而后 set进行,此时会有一个散列算法,来决定你key会存放在哪台server上。web
最后要注意一点,memcached主要使用于存储实时性要求不是很高的信息。算法
二、安装数据库
Linux:centOs5.5json
安装libevent缓存
这个库Memcache用于Socket的处理,下载libevent,wget -O /opt http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz。
服务器
cd /opt tar zxvf libevent-1.4.13-stable.tar.gz cd libevent-1.4.13-stable ./configure -prefix=/usr make make install校验 libevent是否安装成功,ll /usr/lib | grep libevent*
lrwxrwxrwx 1 root root 21 07-19 06:01 libevent-1.4.so.2 -> libevent-1.4.so.2.1.3 -rwxr-xr-x 1 root root 308872 07-19 06:01 libevent-1.4.so.2.1.3 -rw-r--r-- 1 root root 396058 07-19 06:01 libevent.a lrwxrwxrwx 1 root root 26 07-19 06:01 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.3 -rwxr-xr-x 1 root root 110218 07-19 06:01 libevent_core-1.4.so.2.1.3 -rw-r--r-- 1 root root 149976 07-19 06:01 libevent_core.a -rwxr-xr-x 1 root root 860 07-19 06:01 libevent_core.la lrwxrwxrwx 1 root root 26 07-19 06:01 libevent_core.so -> libevent_core-1.4.so.2.1.3 lrwxrwxrwx 1 root root 27 07-19 06:01 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.3 -rwxr-xr-x 1 root root 247155 07-19 06:01 libevent_extra-1.4.so.2.1.3 -rw-r--r-- 1 root root 308358 07-19 06:01 libevent_extra.a -rwxr-xr-x 1 root root 867 07-19 06:01 libevent_extra.la lrwxrwxrwx 1 root root 27 07-19 06:01 libevent_extra.so -> libevent_extra-1.4.so.2.1.3 -rwxr-xr-x 1 root root 825 07-19 06:01 libevent.la lrwxrwxrwx 1 root root 21 07-19 06:01 libevent.so -> libevent-1.4.so.2.1.3
安装memcac并发
安装时还要指定libevent的安装位置
下载memcached,wget -0 /opt http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz
memcached
cd /opt tar zxvf memcached-1.4.13.tar.gz cd memcached-1.4.13 ./configure -with-libevent=/usr make make install校验memcached是否安装成功 ,ll /usr/local/bin | grep memcached*
-rwxr-xr-x 1 root root 234318 07-19 06:34 memcached
三、启动&&关闭
/usr/local/bin/memcached -d -m 300 -u root -l 192.168.1.107 -p 11211 -c 400 -P /tmp/memcached.pid
netstat -ant或者lsof -i:11211查看
telnet 192.168.1.107 11211
输入stats
STAT pid 19050 STAT uptime 8346 STAT time 1342660277 STAT version 1.4.13 STAT libevent 1.4.13-stable STAT pointer_size 32 STAT rusage_user 0.028995 STAT rusage_system 0.230964 STAT curr_connections 5 STAT total_connections 9 STAT connection_structures 6 STAT reserved_fds 20 STAT cmd_get 1 STAT cmd_set 0 STAT cmd_flush 0 STAT cmd_touch 0 STAT get_hits 0 STAT get_misses 1 STAT delete_misses 0 STAT delete_hits 0 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT touch_hits 0 STAT touch_misses 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 303 STAT bytes_written 1208 STAT limit_maxbytes 314572800 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 0 STAT hash_power_level 16 STAT hash_bytes 262144 STAT hash_is_expanding 0 STAT expired_unfetched 0 STAT evicted_unfetched 0 STAT bytes 0 STAT curr_items 0 STAT total_items 0 STAT evictions 0 STAT reclaimed 0 END
启动参数详解:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,若是有多个地址的话,我这里指定了服务器的IP
地址192.168.0.200,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发链接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
关闭只要杀掉进程便可。
四、开机启动
vi /etc/rc.d/rc.local
把/usr/local/bin/memcached -d -m 300 -u root -l 192.168.1.107 -p 11211 -c 400 -P /tmp/memcached.pid加入便可。