centos7.5安装memcached

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/youcijibi/article/details/82350453

安装memcached需要先安装libmemcached

一,安装libmemcached

1,下载 : https://launchpad.net/libmemcached/+download

2,安装 : tar -zxf .... cd ....  ./configure --prefix=/usr/local/related/libmemched   make && make install

二,安装memcached

1,下载:http://pecl.php.net/package/memcached

2,安装:tar -zxf ...... cd .... 安装它需要指定php-config与libmemcached的地址(如果它没有安装在默认地址)

./configure --prefix=/usr/local/related/memcached-3.0.4 --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/related/libmemcached-1.0.18/

可能会报一个错:

configure: error: no, sasl.h is not available. Run configure with --disable-memcached-sasl to disable this check

可以根据提示指定--disable-memcached-sasl 解决,也可以安装这个sasl文件:

To solve this issue with CentOS, you should be able to run:

yum install cyrus-sasl-devel

FYI, this question refers to CentOS, but for Ubuntu, the following should work:

sudo apt-get install libsasl2-dev

再次安装如果报错:

configure: error: no, libmemcached sasl support is not enabled. Run configure with --disable-memcached-sasl to disable this check

这是因为安装libmemcached时没有开启sasl支持

所以重新安装libmemcached

./configure --prefix=/usr/local/related/libmemcached --enable-sasl

 三,安装memcached服务

上面安装了php的memcached扩展后安装memcached服务

memcached服务器
memcached
下载地址http://memcached.org/
wget下载路径http://www.memcached.org/files/memcached-1.4.25.tar.gz
这里用到的是
memcached-1.4.25.tar.gz


memcached基于libevent的事件处理:libevent是个程序库,他将Linux 的epoll、BSD类操作系统的kqueue等时间处理功能封装成统一的接口。memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能
libevent
下载地址http://libevent.org/
wget下载路径http://jaist.dl.sourceforge.net/project/levent/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
这里用到的是
libevent-2.0.22-stable.tar.gz


用 WinSCP上传到指定的目录下,这里是
/usr/local/src


shell端
查询系统是否已安装libevent
RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”
-i            :install 安装
-v            :显示详细信息
-vv           :显示更加详细的信息
-h            :使用#显示安装进度
-U            :软件存在则升级软件,不存在则安装软件
-F            :软件存在则升级软件,不存在则不做任何动作
-e            :程序卸载--nodeps  不卸载相关依赖包,可能导致其他软件无法使用
-q            : 查询某个包是否安装
--test        :仅测试是否可以安装,但是不进行安装
--nodeps      :不考虑依赖关系进行安装,可能造成软件无法正常使用
--force       :忽略软件包及文件的冲突
--replacepkge :无论软件包是否已被安装,都强行安装软件包
--replacepkgs :重新安装软件包,如原有配置文件存在,可能无法覆盖
如下参数只能配合-q组合使用如-qa在所有已安装包中查询是否安装某个包
-a, --all      : 查询/验证所有包
-p, --package  : 查询/验证包文件
-l, --list     : 查询包中的列表文件
-d, --docfiles : 查询列表所有文档文件
-f, --file     : 查询/验证包拥有的文件
例rpm -ivh zsh-4.3.10-4.1.el6.x86_64.rpm安装zsh-4.3.10-4.1.el6.x86_64.rpm并显示详细信息和安装进度
|grep 搜索命令的输出中是否包含某个字符串,加亮显示(这里是-qa命令输出的字符串中查找)
这里显示libevent-2.0.21-4.el7.x86_64,说明已安装libevent-2.0.21-4.el7.x86_64
rpm -qa|grep libevent


卸载已安装的libevent
rpm -e libevent-2.0.21-4.el7.x86_64


进入到安装包目录
cd /usr/local/src


解压缩libevent到当前文件夹
tar -zxvf libevent-2.0.22-stable.tar.gz


进入解压缩目录
cd libevent-2.0.22-stable


配置安装目录
./configure --prefix=/usr/local/libevent


编译
make


安装
make install


返回上级目录
cd ../


解压缩memcached到当前文件夹
这个压缩包没有用gzip格式压缩  所以解压的时候也不用加上z,直接 tar -xvf 就可以了
tar -xvf memcached-1.4.25.tar.gz


进入解压缩目录
cd memcached-1.4.25


配置安装目录,及关联的libevent库安装目录
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent


编译
make


安装
make install


创建文件夹用来保存memcached的进程文件
mkdir -m777 -p /usr/local/memcached/pid


启动memcached
-d  选项是启动一个守护进程。
-u  表示启动memcached的用户,这里为root,可以指定低权限用户启动memcached。
-m  是分配给Memcache使用的内存数量,单位是MB,默认64MB。内容容量达到指定的值之后memcached回自动删除不适用的缓存
-p  是设置Memcache的TCP监听的端口,最好是1024以上的端口,memcached默认端口11211。
-c  选项是最大运行的并发连接数,按照服务器的负载量来设定,默认是1024。
-P  是设置保存Memcache的pid文件,也就是保存进程ID到指定文件,只有在使用 -d 选项的时候才有意义。
-vv 输出详细信息
也可以启动多个守护进程,但是端口不能重复。这样就可以在一台机器上相当拥有多个Memcached服务器
/usr/local/memcached/bin/memcached -d -m 256 -u root -p 11211 -c 1024 -P /usr/local/memcached/pid/memcached.pid -vv


杀死memcached进程
kill `cat /usr/local/memcached/pid/memcached.pid`


/*
或者可以查看11211端口使用情况获取使用进程ID
lsof -i:11211


直接用kill 进程ID 来杀死进程,这里memcached的进程ID是20146
kill 20146
*/


将memcached放到service控制中将下面代码新建保存到/etc/init.d/memcached中
#!/bin/bash
# memcached MemCached
# it is v.1.4.25 version.
# chkconfig: - 85 15
# description: memcached is very good
# processname: memcached
MEMCACHED="/usr/local/memcached/bin/memcached"
PID_FILE="/usr/local/memcached/pid/memcached.pid"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
start()
{
    $MEMCACHED -d -m 256 -u root -p 11211 -c 1024 -P ${PID_FILE}
}
stop()
{
    kill `cat $PID_FILE`
}
restart(){
    stop
    start
}
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        sleep 3
        start
        ;;
    *)
    echo $"Usage: 0 {start|stop|restart}"
    exit 1
esac
exit 0
:wq  保存并退出
vim /etc/init.d/memcached


设置文件的访问权限
chmod 755 /etc/init.d/memcached


可以使用service控制memcached启用关闭了
service memcached start


让memcached服务加入到开机启动指令管理的服务列表中
chkconfig --add memcached


设置开机启动
chkconfig memcached on


开启防火墙11211端口的外部访问
firewall-cmd --zone=public --add-port=11211/tcp --permanent


重启防火墙
firewall-cmd --reload

附
linux启动memcached选项
-p   : 监听的TCP端口(默认: 11211)
-U   : 监听的UDP端口(默认: 11211, 0表示不监听)
-s   : 用于监听的UNIX套接字路径(禁用网络支持)
-a   : UNIX套接字访问掩码,八进制数字(默认:0700)
-l   : 监听的IP地址。(默认:INADDR_ANY,所有地址)
-d   : 作为守护进程来运行。
-r   : 最大核心文件限制。
-u   : 设定进程所属用户。(只有root用户可以使用这个参数)
-m   : 单个数据项的最大可用内存,以MB为单位。(默认:64MB)
-M   : 内存用光时报错。(不会删除数据)
-c   : 最大并发连接数。(默认:1024)
-k   : 锁定所有内存页。注意你可以锁定的内存上限。试图分配更多内存会失败的,所以留意启动守护进程时所用的用户可分配的内存上限。(不是前面的 -u  参数;在sh下,使用命令"ulimit -S -l NUM_KB"来设置。)
-v   : 提示信息(在事件循环中打印错误/警告信息。)
-vv  : 详细信息(还打印客户端命令/响应)
-vvv : 超详细信息(还打印内部状态的变化)
-h   : 打印这个帮助信息并退出。
-i   : 打印memcached和libevent的许可。
-P   : 保存进程ID到指定文件,只有在使用 -d 选项的时候才有意义。  
-f   : 块大小增长因子。(默认:1.25)
-n   : 分配给key+value+flags的最小空间(默认:48)
-L   : 尝试使用大内存页(如果可用的话)。提高内存页尺寸可以减少"页表缓冲(TLB)"丢失次数,提高运行效率。为了从操作系统获得大内存页,memcached会把全部数据项分配到一个大区块。
-D   : 使用  作为前缀和ID的分隔符。这个用于按前缀获得状态报告。默认是":"(冒号)。如果指定了这个参数,则状态收集会自动开启;如果没指定,则需要用命令"stats detail on"来开启。
-t   : 使用的线程数(默认:4)
-R   : 每个连接可处理的最大请求数。
-C   : 禁用CAS。
-b   : 设置后台日志队列的长度(默认:1024)
-B   : 绑定协议 - 可能值:ascii,binary,auto(默认)
-I   : 重写每个数据页尺寸。调整数据项最大尺寸。

猜你喜欢

转载自blog.csdn.net/youcijibi/article/details/82350453