三台linux服务器系统CentOS7
一台memcached IP:192.168.155.134
一台Apache IP:192.168.155.130
一台nginx IP:192.168.155.131 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 Apache和nginx服务器
memcache是PHP的memcached扩展
下载地址http://pecl.php.net/package/memcache
wget下载路径http://pecl.php.net/get/memcache-2.2.7.tgz
这里用到的是
memcache-2.2.7.tgz 用 WinSCP上传到指定的目录下,这里是
/usr/local/src shell端
先安装m4,autoconf。m4是autoconf必要程序,一会要使用phpize会用到autoconf
yum install m4 autoconf 进入到安装包目录
cd /usr/local/src 解压缩memcache到当前文件夹
tar -zxvf memcache-2.2.7.tgz 进入解压缩目录
cd memcache-2.2.7 执行phpize,动态加载PHP扩展模块
phpize在PHP安装路径下的bin文件夹中(执行phpize及下面的配置,编译,安装时,当前路径位置一定要在PHP扩展程序的解压缩目录中执行,这里是/usr/local/src/memcache-2.2.7目录中)
/usr/local/php/bin/phpize 配置,php-config在PHP安装路径下的bin文件夹中
./configure --with-php-config=/usr/local/php/bin/php-config 编译
make 安装扩展后会在PHP安装路径里/usr/local/php/lib/php/extensions下自动生成一个文件夹(apache,nginx下生成的文件夹名不一样),里面包含memcache.so
make install 修改php.ini文件,加载memcache.so模块
在一堆extension下面添加
extension=memcache.so
vim /usr/local/php/php.ini 重启服务器
apache用service httpd restart,nginx用service php-fpm restart
service httpd restart 或者 service php-fpm restart 在Apache和nginx服务器上新建PHP页面添加如下内容,执行测试memcached
<?php
$mem = new Memcache;//创建一个memcache对象
//'127.0.0.1'表示安装 Memcache 的机器IP,11211 连接 Memcache 所需的端口号,也是 Memcache 的默认端口号
$mem->connect('192.168.155.134', 11211); //可以用connect方法连接单个memcached服务器,也可以用addServer组成分布式memcached。addServer方法可替代connect来连接memcached服务器
//addServer相当把所有用addServer的memcached服务器合成一个大memcached服务器,内存累加,不用关心往哪个memcached服务器添加数据,客户端memcache扩展模块会自动控制往某台memcached服务器存值,取值
//memcached服务器不互通信的分布式:memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个memcached不会互相通信以共享信息。他的分布式主要是通过客户端实现的。
//这里只有一台memcached服务器,以添加端口模拟添加一台memcached服务器
$mem->addServer('192.168.155.134', 11211);
$mem->addServer('192.168.155.134', 11212);//要使用此端口需在memcached服务器上添加该端口的memcached服务 /usr/local/memcached/bin/memcached -d -m 256 -u root -p 11212 -c 1024 -P /usr/local/memcached/pid/memcached.pid -vv //常用操作
//不同客户端可共享memcached服务器里保存的键及值
//往Memcache中自定义键值中存入数据
$mem->set('keyName', ' a value', 0, 60);
//获取Memcache中指定键值的值
$val = $mem->get('keyName');
echo $val;
exit; //替换
$mem->set('keyName', ' a value', 0, 60);
$mem->replace('keyName', 'This is replace value', 0, 60);
$val = $mem->get('keyName');
echo $val;
exit; //保存数组数据
$arr = array('aaa', 'bbb', 'ccc', 'ddd');
$mem->set('keyName', $arr, 0, 60);
$val = $mem->get('keyName');
var_dump($val);
exit; //删除数据
$mem->set('keyName', ' a value', 0, 60);
$mem->delete('keyName');
$val = $mem->get('keyName');
echo $val;
exit; //清除所有数据
$mem->set('keyName', ' a value', 0, 60);
$mem->set('keyName2', ' a value', 0, 60);
$mem->flush();
$val = $mem->get('keyName');
$val2 = $mem->get('keyName2');
echo $val,$val2;
exit; //关闭连接
$mem->close();
?> 附
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 : 重写每个数据页尺寸。调整数据项最大尺寸。

CentOS7安装memcached的更多相关文章

  1. centos7 安装memcached

    (1)编译安装Memcached 1.51.1 安装依赖包libevent# yum -y install epel-release# yum -y install libevent libevent ...

  2. CentOS7安装Memcached 三步曲

    1.yum 安装 yum clean allyum -y updateyum -y install memcached 2.Memcached 运行 memcached -h //查看考号修改配置vi ...

  3. centos7下memcached的安装配置

    memcached 依赖 libevent-devel 首先安装libevent-devel yum -y install libevent-devel 安装完毕! 继续安装memcached yum ...

  4. CentOS7 安装、配置 Memcached

    点击访问原文地址 介绍 Memcached 是一个分布式.高性能的内存缓存系统,通过缓存内存中的数据和对象,提高和加速动态 web 应用程序的性能.它主要用于加速对数据库重度使用的站点. Memcac ...

  5. Linux 下安装 Memcached 和 PHP 开启 Memcached 扩展

    [项目背景]:阿里云ECS服务器,Linux(centos7.2 64位),环境部署使用的是阿里云一键安装包(LAMP)等 [项目需求]:linux安装memcached 和php开启Memcache ...

  6. CentOS7安装OpenStack(Rocky版)-01.控制节点的系统环境准备

    分享一下Rocky版本的OpenStack安装管理经验: OpenStack每半年左右更新一版,目前是版本是201808月发布的版本-R版(Rocky),目前版本安装方法优化较好,不过依然是比较复杂 ...

  7. HP服务器 hp 360g5 centos7安装问题

    HP服务器  hp 360g5 centos7安装问题 一 :启动盘无法识别硬盘 1.进入安装光盘,用上下键选择安装centos--Install Centos7(注意不可按Enter键),如图: 2 ...

  8. CentOS7 安装Mono及Jexus

    CentOS7安装Mono及Juxes 1 安装Mono 1.1 安装yum-utils 因为安装要用到yum-config-manager,默认是没有安装的,所以要先安装yum-utils包.命令如 ...

  9. NoSql1 在Linux(CentOS)上安装memcached及使用

    前言:       今天是初五,生活基本要从过年的节奏中回归到正常的生活了,所以想想也该想想与工作有关的事情了.我之前在工作中会经常使用memcached和redis,但是自己一直没有时间系统的好好看 ...

随机推荐

  1. Java web MVC开发模式入门感悟

    当我进行第一个完整的java web项目的开发时,对以前所学的Java web知识体系有了一个清晰的进阶认识.我觉得非常有必要对此进行必要的总结. MVC,意指model(数据持久层)+viewer( ...

  2. db2数据库新手可能碰到的问题及详解(部分内容来自网络搜索)

    一.db2安装好之后出现乱码,菜单栏呈现方框状,此时选择菜单第五项,点击选择下拉菜单中的最后一项,打开选择标签卡的第三项(字体),如果是无衬线都改为有衬线,如果是有衬线改为无衬线.乱码即可解决(网上一 ...

  3. select的5中子句where,group by, havaing, order by, limit的使用顺序及实例

    -- 语法: SELECT select_list FROM table_name [ WHERE search_condition ] [ GROUP BY group_by_expression ...

  4. 使用dd制作文件夹的img

    du -sh originfile //先看看需要制作的源文件夹大小,假如15M dd if=/dev/zero of=new_img.img bs=1024 count=20000 //生成20M的 ...

  5. Python多行注释

    由于Python的注释只有针对于单行的注释(用#),多行注释时很不方便(要想多行注释只能每行代码前面都加上#).在网上看到一个Python的多行注释方法,分享给大家,其实很简单的,就是使用一对三个双引 ...

  6. IOS第15天(2,事件处理,侧滑菜单,抽屉效果)

    ******HMDrawViewController.m #import "HMDrawViewController.h" @interface HMDrawViewControl ...

  7. mongod 命令执行发现已经有进程在运行mongod数据库--errno:48 Address already in use for socket: 0.0.0.0:27017

    错误信息: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:27017 27017端口已经被占用 ...

  8. VMware workstation CentOs 7 虚拟机网卡设置为NAT模式并设置固定IP

    一.背景知识      虚拟机网络模式 无论是vmware workstation,virtual box,virtual pc等虚拟机软件,一般来说,虚拟机有三种网络模式: 1.桥接 2.NAT 3 ...

  9. Java集合框架使用总结

    Java集合框架使用总结 前言:本文是对Java集合框架做了一个概括性的解说,目的是对Java集合框架体系有个总体认识,如果你想学习具体的接口和类的使用方法,请参看JavaAPI文档. 一.概述数据结 ...

  10. DBXJSON和ADO的效率真的好低....

    项目需要写了一个JSON和DataSet互转的单元.....支持了Delphi自带的几种DataSet, 结果发现DBXJSON和ADO的效率真的是好低啊........-_-.... 开发环境是XE ...