memcache安装

Posted mingyuewu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了memcache安装相关的知识,希望对你有一定的参考价值。

memcached安装

时间2021-08-09
环境centos7.6 memcache1.5.22 libevent-2.1.12-stable.tar.gz

一、memcached简介

​ memcache是一个内存缓存系统,将对象缓存在内存中,从而降低WEB应用对数据库的压力。和redis类似,但redis支持更多的数据类型和数据持久化。memcache支持最大的内存存储对象为1M,超过1M的数据可以使用客户端压缩或拆分报文到多个Key中,比较大的数据在读取是需要消耗的时间比较长。

php针对上述软件有两个PECL扩展,PHP memcache 扩展,PHP memcached 扩展

memcache基于PHP实现,支持面向对象和面向过程两种接口,老客户端,功能少
memcached基于libmemcached开发,只支持面向对象接口,功能更完善

二、memcache软件安装路径及端口规划

端口11211
家目录/usr/local/memcached
可执行文件路径/usr/local/memcached/bin/memcached
include文件,不知该干嘛用的/usr/local/memcached/include
帮助文档/usr/local/memcached/share
pid文件/usr/local/memcached/logs/memcached.pid
日志文件/usr/local/memcached/logs/memcached.log
pid文件和日志文件需要在启动程序时手动指定位置

三、安装过程

1 下载安装包

官方安装包链接:

http://memcached.org/downloads

2 创建memcache用户及安装所需库libevent

yum install openssl openssl-devel  (报错提示安装的时候安装)
# 添加用户和用户组
groupadd -r memcached
useradd  -s /sbin/nologin -g memcached  memcached 
# 更改目录所有者
chown -R memcached:memcached  /usr/local/memcached
# 安装libevent库
yum install libevent libevent-devel  (或者自己上传编译安装)
tar  -zxvf   libevent
cd libevent
./configure && make  && make install # 不用指定安装目录,默认安装在/usr/local/lib下
   #创建软链接
ln -s /usr/local/lib/libevent-2.1.so.7.0.1  /usr/lib64/libevent-2.1.so.7.0.1
#检查libevent是否安装成功
ls -al /usr/local/lib | grep libevent

libevent库,一个基于事件通知机制的库,支持epoll,select等事件机制

3 解压编译

cd  /usr/local/src
tar  -zxvf  memcached
cd memcache
./configure  --prefix=/usr/local/memcached  
make  &&  make install

4 启动运行

cd  /usr/local/memcached/bin
./memcached -d -l 127.0.0.1 -p 11211 -u memcached -m 512 -c 10 -P /usr/local/memcached/memcached.pid   -vv >> /usr/local/memcached/logs/memcached.log.`date +%Y%m%d` 2>&1 
# -d 以守护进程方式运行
# -l 监听的服务器IP地址
# -p 指端口
# -u 指用户
# -m 使用多少MB的内存作为缓存区,默认64MB
# -c 最大允许num个并发连接,默认1024 
# -P 将进程号pid保存在filename汇总
# -v 在事件循环过程中打印详细的错误和告警信息,即日志
# 给memcached创建日志
-vv >> /usr/local/memcached/logs/memcached.log.`date +%Y%m%d` 2>&1 
# -vv参数介绍
-v代表打印普通的错误或者警告类型的日志信息
-vv比-v打印的日志更详细,包含了客户端命令和server端的响应信息
-vvv则是最详尽的,甚至包含了内部的状态信息打印
##############################这里将启动命令写入startMemcached.sh  chmod +x  startMemcached.sh
[root@oracle12c bin]# pwd
/usr/local/memcached/bin
[root@oracle12c bin]# ll
total 708
-rwxr-xr-x 1 memcached memcached 720672 Aug  9 15:10 memcached
-rw-r--r-- 1 memcached memcached    167 Aug  9 15:15 startMemcached.sh
[root@oracle12c bin]# cat startMemcached.sh 
./memcached -d -u memcached -l 127.0.0.1 -p 11211 -m 512 -P /usr/local/memcached/run/memcached.pid -vv >> /usr/local/memcached/logs/memcached.log.`date +%Y%m%d` 2>&1

5 修改配置文件

# /etc/sysconfig/memcached
PORT=11211
USER="memcached"
MAXCONN="1024"  #最大连接数
CACHESIZE="512"  #服务支持的最大内存,以M为单位
OPTION=""

四、加入开机自启动

vim /usr/lib/systemd/system/memcached.service 
[Unit]
Description=Memcached
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/memcached/bin/startMemcached.sh 
Restart=on-failure
User=memcached
Group=memcached
[Install]
WantedBy=multi-user.target

####
systemctl daemon-reload
# but制作失败@^@

五、检查启动状态

#查进程
[root@node01 bin]# ps -ef | grep memcached
memcach+ 30976     1  0 10:25 ?        00:00:00 ./memcached -d -m 64 -u memcached -p 11211 -P /usr/local/memcached/memcached.pid
root     31057 12310  0 10:26 pts/0    00:00:00 grep --color=auto memcached
# 查端口号
[root@node01 bin]# lsof -i tcp:11211
COMMAND     PID      USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
memcached 30976 memcached   26u  IPv4 33929705      0t0  TCP *:memcache (LISTEN)
memcached 30976 memcached   27u  IPv6 33929706      0t0  TCP *:memcache (LISTEN)

六、连接到memcache

telnet  127.0.0.1  11211
# 添加一条数据
add  key  flag  expire  length
add   stu_name  0 0 2
my
# 查询数据
get  stu_name
# 修改数据 repalce 或set
replace  stu_name 0 0 2
# 删除数据
delete  stu_name

报错解决:

Socket/File : too many open files

yum install -y build-essential libexpat1-dev libgeoip-dev libpng-dev libpcre3-dev libssl-dev libxml2-dev rcs zlib1g-dev libmcrypt-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libwebp-dev pkg-config

卸载重装,莫名其妙又好了,注意必要的依赖包要装 openssl ,openssl-devel ,libevent的软链接到/usr/lib64

七、参考文档

memcache官方安装文档
https://github.com/memcached/memcached/wiki/Install

以上是关于memcache安装的主要内容,如果未能解决你的问题,请参考以下文章

memcached 源代码安装

php扩展memcache的安装

Linux下Memcached的安装步骤是啥呢?

Linux Memcached 安装

php扩展memcached和memcache的安装配置方法

php扩展memcached和memcache的安装配置方法:转载