memcache是一套分布式的高速缓存系统,MemCache的工作流程如下:先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中;当分配给memcached内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据

memcache安装

官方下载地址:http://memcached.org

下载后上传到安装目录,我的安装目录是/home/cmreadwh/

执行命令解压:

cd /home/cmreadwh
tar zxvf memcached-1.4.5.tar.gz
tar zxvf libevent-1.4.14b-stable.tar.gz
#安装libevent
cd libevent-1.4.14b-stable
./configure --prefix=/home/liuzhy/libevent-1.4.14b-stable
make
make install #安装memcache
cd /home/blue/memcached-1.4.5
./configure --prefix=/home/blue/memcached-1.4.5 --with-libevent=/home/blue/libevent-1.4.14b
make
make install

启动memcache服务

进入memcache的bin目录,执行:./memcached -d -m 1024 -u blue,

下面是memcached命令的参数具体含义
# /usr/local/bin/memcached -d -m 200 -u root -l 192.168.1.91 -p 12301 -c 1000 -P /tmp/memcached.pid
相关解释如下:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,这里是200MB
-u是运行Memcache的用户,如果当前为 root 的话,需要使用此参数指定用户。
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.1.91
-p是设置Memcache监听的端口,我这里设置了12301,最好是1024以上的端口
-c选项是最大运行的并发连接数,默认是1024,这里设置了256
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
停止Memcache进程:
# kill `cat /tmp/memcached.pid`
-d的具体含义:
-d install 安装memcached
-d uninstall 卸载memcached
-d start 启动memcached服务
-d restart 重启memcached服务
-d stop 停止memcached服务
-d shutdown 停止memcached服务

检查memcache服务

1、查看启动的memcache服务(不一定会显示所有的服务)
netstat -lp | grep memcached 2、查看memcache的进程号
ps -ef | grep memcached 

可以根据进程号使用kill -9 ‘process’杀死进程

 

memcache进阶

编写memcached自启动脚本:

#! /bin/sh
#
# chkconfig: - 55 45
# description: The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/memcached

# Source function library.
. /etc/rc.d/init.d/functions

PORT=11211
USER=cmreadwh
MAXCONN=1024
CACHESIZE=64
OPTIONS=""

if [ -f /etc/sysconfig/memcached ];then
. /etc/sysconfig/memcached
fi

# Check that networking is up.
if [ "$NETWORKING" = "no" ]
then
exit 0
fi

RETVAL=0
prog="memcached"

start () {
echo -n $"Starting $prog: "
# insure that /var/run/memcached has proper permissions
chown $USER /home/cmreadwh/memcached-1.4.35
daemon /home/cmreadwh/memcached-1.4.35/memcached -d -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P /home/cmreadwh/memcached-1.4.35/memcached.pid $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached
}
stop () {
echo -n $"Stopping $prog: "
killproc memcached
RETVAL=$?
echo
if [ $RETVAL -eq 0 ] ; then
rm -f /var/lock/subsys/memcached
rm -f /home/cmreadwh/memcached-1.4.35/memcached.pid
fi
}

restart () {
stop
start
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status memcached
;;
restart|reload)
restart
;;
condrestart)
[ -f /var/lock/subsys/memcached ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
exit 1
esac

exit $?

将此脚本cp到/etc/init.d目录下并改名为memcached,然后执行chmod a+x memcached,如下:

shell > cp memcached.sysv /etc/init.d/memcached

shell > chmod 755 /etc/init.d/memcached

4.将memcached加入系统服务:

shell > chkconfig --add memcached

shell > chkconfig memcached on

5.以服务方式运行memcached
shell > service memcached start

以上如成功则重启下系统后查看下memcached是否已随系统启动

 


最新文章

  1. Javascript判断两个日期是否相等
  2. C#.NET 通用控件数据源绑定类
  3. struts2实现改变超链接的显示方式
  4. 静态时序分析(static timing analysis) --- 时序路径
  5. Matlab动态数组实现
  6. 把图片生成Base64字符串
  7. 在Windows下编译OpenSSL(VS2005和VC6)
  8. javascript内存管理(堆和栈)和javascript运行机制
  9. OMS自动化运维平台部署
  10. How to remove unwant Internet Explorer Context Menu
  11. Ant之build.xml详解
  12. 线性表seqList类及其父类list,模板类
  13. 最新 macOS Sierra 10.12.3 安装CocoaPods及使用详解
  14. Python3学习之路~5.4 os模块
  15. lesson8-图像问答-小象cv
  16. Microsoft Visual Studio正在等待操作完成
  17. 《转载》Python并发编程之线程池/进程池--concurrent.futures模块
  18. 《沉静领导》读书笔记zz
  19. 【Java 笔记】 java 格式化输出
  20. 【机器学习算法-python实现】决策树-Decision tree(2) 决策树的实现

热门文章

  1. Solr5.2.1+Zookeeper3.4.8分布式集群搭建
  2. flex中过滤掉字符串的空格
  3. 深入浅出分析MySQL MyISAM与INNODB索引原理、优缺点、主程面试常问问题详解
  4. [.net 面向对象程序设计深入](8)认识.NET Core
  5. 移动web开发经验
  6. phpcms2008常用函数小结
  7. POJ1275出纳员的雇佣【差分约束】
  8. Html5 Canvas笔记(2)-Canvas绘图
  9. 跟着刚哥梳理java知识点——数组(七)
  10. Linux-进程描述(2)之进程标识符与进程位置