Memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作【客户端可以由各种语言编写】。客户端首先与 Memcached 服务建立连接,然后存取对象。保存在 Memcached 中的对象是放置在内存中的,而不是在硬盘上。
Memcached 进程运行之后,会预申请一块较大的内存空间,自己进行管理,用完之后再申请,不是每次需要的时候去向操作系统申请。Memcached将对象保存在一个巨大的Hash表中,它还使用NewHash算法来管理Hash表,从而获得进一步的性能提升。所以当分配给Memcached的内存足够大的时候,Memcached的时间消耗基本上只是网络Socket连接了
下面来说说Memcached的不足:
1、数据是保存在内存当中的,一旦服务进程重启,数据会全部丢失
对策:可以采取更改Memcached的源代码,增加定期写入硬盘的功能
2、Memcached以root权限运行,而且Memcached本身没有任何权限管理和认证功能,安 全性不足
对策:可以将Memcached服务绑定在内网IP上,通过防火墙进行防护
下面简单介绍下memcache安装,关键步骤如下:
1、下载
[xsf@dev163 tool]# wget -c http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
[xsf@dev163 tool]# tar -zxvf memcached-1.4.15.tar.gz
2、编译安装
[xsf@dev163 tool]# cd memcached-1.4.15
[xsf@dev163 tool]# ./configure --prefix=/usr/local/memcached-1.4.15
[xsf@dev163 tool]# make && make install
[xsf@dev163 tool]# ln -s /usr/local/memcached-1.4.15 /usr/local/memcached
3、启动
[xsf@dev163 tool]# /usr/local/memcached/bin/memcached -d -m 200 -uroot -l 0.0.0.0 -p 11211 -c 512 -P /usr/local/memcached/memcached.pid
如果顺利,memcached已经启动起来。可以通过下面命令来查看memcached的运行状态
[xsf@dev163 ~]# echo 'stats settings' | nc localhost 11211
本机显示如下:
STAT maxbytes 209715200
STAT maxconns 512
STAT tcpport 11211
STAT udpport 11211
STAT inter 0.0.0.0
STAT verbosity 0
STAT oldest 0
STAT evictions on
STAT domain_socket NULL
STAT umask 700
STAT growth_factor 1.25
STAT chunk_size 48
STAT num_threads 4
STAT num_threads_per_udp 4
STAT stat_key_prefix :
STAT detail_enabled no
STAT reqs_per_event 20
STAT cas_enabled yes
STAT tcp_backlog 1024
STAT binding_protocol auto-negotiate
STAT auth_enabled_sasl no
STAT item_size_max 1048576
STAT maxconns_fast no
STAT hashpower_init 0
STAT slab_reassign no
STAT slab_automove 0
END
参阅:
https://code.google.com/p/memcached/wiki/NewConfiguringServer