1、Memcached简介
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
2、安装libevent
相关文档:http://libevent.org/
memcached依赖于libevent API,安装Memcached之前需要先安装libevent
。可以使用rpm -q libevent
查看是否已经安装。
wget https://cloud.github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz tar -zxvf libevent-2.0.20-stable.tar.gz cd libevent-2.0.20 ./configure --prefix=/usr/local/libevent make && make install echo "/usr/local/libevent/lib" > /etc/ld.so.conf.d/libevent.conf ldconfig
3、安装配置memcached
相关文档:https://www.memcached.org/
1)安装memcached
wget -O /usr/src/memcached-1.4.34.tar.gz https://www.memcached.org/files/memcached-1.4.34.tar.gz tar -zxvf memcached-1.4.15.tar.gz ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent --enable-sasl make && make install
注意:
--enable-sasl
选项是启用sasl
认证,由于memcached默认不支持认证,所以私密数据会存在安全隐患,开启sasl
认证后,memcached可以使用sasl
进行认证。如有需要可以开启此选项
但开启sasl之前要确保cyrus-sasl-devel的开发库是否已经安装,命令如下;
rpm -qa | grep sasl
yum list all | grep sasl
yum install -y cyrus-sasl-devel
2)配置memcached服务
添加/etc/init.d/memcached
文件,内容如下:
#!/bin/bash # # Init file for memcached # # chkconfig: - 86 14 # description: Distributed memory caching daemon # # processname: memcached # config: /etc/sysconfig/memcached . /etc/rc.d/init.d/functions ## Default variables PORT="11211" USER="nobody" MAXCONN="1024" CACHESIZE="64" OPTIONS="" [ -f /etc/sysconfig/memcached ] && . /etc/sysconfig/memcached RETVAL=0 prog="/usr/local/memcached/bin/memcached" desc="Distributed memory caching" lockfile="/var/lock/subsys/memcached" start() { echo -n $"Starting $desc (memcached): " daemon $prog -d -p $PORT -u $USER -c $MAXCONN -m $CACHESIZE "$OPTIONS" #启动失败,去掉-o RETVAL=$? echo [ $RETVAL -eq 0 ] && touch $lockfile return $RETVAL } stop() { echo -n $"Shutting down $desc (memcached): " killproc $prog RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f $lockfile return $RETVAL } restart() { stop start } reload() { echo -n $"Reloading $desc ($prog): " killproc $prog -HUP RETVAL=$? echo return $RETVAL } case "$1" in start) start ;; stop) stop ;; restart) restart ;; condrestart) [ -e $lockfile ] && restart RETVAL=$? ;; reload) reload ;; status) status $prog RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|status}" RETVAL=1 esac exit $RETVAL
配置命令:
chmod +x /etc/init.d/memcached chkconfig --add memcached chkconfig memcached on service memcached start
4、memcached启动命令选项
/usr/local/memcached/bin/memcached -d -c 1024 -m 128 -n 20 -f 1.25 -u nobody
参数选项:
选项 | 描述 |
-l | 指定进程监听的地址; |
-d | 以服务模式运行; |
-u | 以指定的用户身份运行memcached进程; |
-m | 用于缓存数据的最大内存空间,单位为MB,默认为64MB; |
-c | 最大支持的并发连接数,默认为1024; |
-p | 指定监听的TCP端口,默认为11211; |
-U | 指定监听的UDP端口,默认为11211,0表示关闭UDP端口; |
-t | 用于处理入站请求的最大线程数,仅在memcached编译时开启了支持线程才有效; |
-f | 设定Slab Allocator定义预先分配内存空间大小固定的块时使用的增长因子; |
-M | 当内存空间不够使用时返回错误信息,而不是按LRU算法利用空间; |
-n | 指定最小的slab chunk大小;单位是字节; |
-S | 启用sasl进行用户认证; |
-v | 显示详细信息 |
-vv | 显示更加详尽的信息 |