memcached学习——大纲简介 && 安装(基于centos6.5)、启动、关闭memcached(一)

2017-01-11 by 鱼我所欲也

  大纲简介

  安装前,先简单介绍一下memcached。

  memcached是一个免费、开源、高性能的分布式缓存。设计memcached的初衷是为了加快web应用程序,减少DB负载。

  安装要求:支持大多数linux和基于BSD的系统,官方没有给出windows版本,但是网上有memcached for windows可以在windows上使用。

  数据类型:仅仅支持string类型数据

  特点:

    简单的key-value的键值对。

    基于c/s架构,客户端负责选择要写入的目标服务器以及通过接口进行读写操作,服务器则负责实际的写入操作、内存管理等。

    所谓分布式是用一致性hash算法实现的,各节点相互独立,没有任何通信机制。

    分配的内存不会被释放掉,但是可以被重用,基于LRU算法实现。

    完全基于内存,没有持久化机制。

  效率:

    官方给出的数值,在比较牛B的机器上,memcached的理论效率能达到200000次/s(没有机器配置,仅供参考)

  使用需要注意的内容:

    不能随意更改服务器的时间,可能影响到缓存的失效时间

    网络稳定

    内存足够,避免使用到Swap分区,否则会造成性能问题

    连接数配置合理

    增长因子配置合理,否则造成大量的内存浪费

  OK,前戏足够,下面直奔主题~

 

  安装memcached

  #memcached依赖libevent,所以先下载并安装libevent。
  #到官网下载:
  #https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
  tar -zxvf libevent-2.0.22-stable.tar.gz
  cd libevent-2.0.22-stable
  ./configure --prefix=/usr/local/libevent-2.0.22-stable
  make && make install

  安装memcached
  安装最新版本memcached
  wget https://memcached.org/latest
  tar -zxvf memcached-1.4.34.tar.gz
  cd memcached-1.4.34.tar.gz
  #--with-libevent:指定libevent的安装目录,--prefix:指定安装的版本,相关命令cd到memcached/bin下,使用./configure --help查看
  ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent-2.0.22-stable/ --enable-64bit
  make && make install


  安装期间可能遇到的问题:
  没有安装gcc无法编译 => yum -y install gcc

  至此memcached安装成功!

 

  启动、停止memcached

  1.启动

  #cd到memcached的安装目录,执行启动命令

 cd /usr/local/memcached-1.4.34/bin ./memcached -u root -m 80 -c 1024 -p 11213 -n 70 -f 1.2 -d

  memcached启动参数说明:(更多参数请使用./memcached -help查看)

  -u 进程用户

  -m 分配内存,注意实际分配内存要略微高于此值。当然,如果设置内存过低(低于64M),实际使用内存可能 >= 64M。

  -c 连接数,默认是1024

  -n 最小分配内存 key + value + flags,最小是48bytes

  -f 增长因子,和memcached的内存分配有关
  -d 以守护线程启动
  -v 提示信息(在事件循环中打印错误、警告信息)
  -vv 详细信息(可以打印客户端命令、响应),以very vrebose模式启动,调试信息和错误输出到控制台
  -vvv 超详细信息(可以打印内部状态的变化)
  -p 指定端口号,一台server上可以跑多个实例
  -l 用于绑定特定的接口或IP地址,安全相关
  -P 监听TCP端口
  -U 监听UDP端口
  -s 限制只能通过本地用户访问,配置此参数后TCP和UDP监听都将失效
  -L 尝试使用大内存页(如果可用的话)。提高内存页尺寸可以减少"页表缓冲(TLB)"丢失次数,提高运行效率

  2.停止

  #查询memcached进程id,杀死进程

 ps -ef|grep memcached kill -9 pid

  操作示例:

  

  

第七城市

栏目导航(关闭)