安装依赖工具

[root@localhost upload]# yum  install gcc  make  cmake  autoconf  libtool

下载并上传文件

memcached 依赖于 libevent 库,因此我们需要先安装 libevent.,ibevent和memcached的下载路径

http://sourceforge.net/projects/levent/?source=typ_redirect

https://github.com/memcached/memcached/wiki/ReleaseNotes1425

[root@localhost upload]# ls

libevent-2.0.22-stable  libevent-2.0.22-stable.tar.gz  memcached-1.4.25.tar.gz

[root@localhost upload]#

解压编译

[root@localhost upload]#tar zxvf libevent-2.0.21-stable.tar.gz

[root@localhost upload]# cd libevent-2.0.22-stable

[root@localhost upload]#./configure  --prefix=/usr/local/libevent

[root@localhost upload]#make && make install

[root@localhost upload]# tar zxvf memcached-1.4.25.tar.gz

[root@localhost upload]# cd memcached-1.4.25

[root@localhost upload]# ./configure  --prefix=/usr/local/memcached

报错:

checking for libevent directory... configure: error: libevent is required.  You can get it from http://www.monkey.org/~provos/libevent/

If it's already installed, specify its path using --with-libevent=/dir/

提示需要libevent,需要指明libevent的安装目录

[root@localhost upload]#

./configure  --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent

[root@localhost memcached-1.4.25]# make && make install

没什么错误提示的话,编译成功。

Memcached已经成功安装到/usr/local/memcached/bin/memcached目录下。

启动memcached

[root@localhost memcached-1.4.25]# /usr/local/memcached/bin/memcached -m 64 -p 11211 -u nobody -vv

slab class   1: chunk size        80 perslab   13107

slab class   2: chunk size       104 perslab   10082

slab class   3: chunk size       136 perslab    7710

slab class   4: chunk size       176 perslab    5957

slab class   5: chunk size       224 perslab    4681

slab class   6: chunk size       280 perslab    3744

slab class   7: chunk size       352 perslab    2978

......

可以看到memcached已经启动,并把信息输出到控制台。

各个参数解析:

-m 内存大小

-p  端口

-u  用户

-vv 详细信息

如果我们想让memcached作为守护进程在后台运行,只需要加-d选项

[root@localhost memcached-1.4.25]#/usr/local/memcached/bin/memcached

-p 11211 -u nobody -d

几个重要参数

摘自网上的几个重要参数

-p <num>      监听的TCP端口(默认: 11211)
-d            作为守护进程来运行。
-u <username> 设定进程所属用户。(只有root用户可以使用这个参数)
-m <num>      所有slab class可用内存的上限,以MB为单位。(默认:64MB)
              (译者注:也就是分配给该memcached实例的内存大小。)
-c <num>      最大并发连接数。(默认:1024)
-v            提示信息(在事件循环中打印错误/警告信息。)
-vv           详细信息(还打印客户端命令/响应)
-vvv          超详细信息(还打印内部状态的变化)
-h            打印这个帮助信息并退出。
-f <factor>   不同slab class里面的chunk大小的增长倍率(增长因子)。(默认:1.25)
              (译者注:每个slab class里面有相同数量个slab page,每个slab page里面有chunk,且在当前slab class内的chunk大小固定。
              而不同slab class里的chunk大小不一致,具体差异就是根据这个参数的倍率在增长,直到分配的内存用尽。)
-n <bytes>    chunk的最小空间(默认:48)
              (译者注:chunk数据结构本身需要消耗48个字节,所以一个chunk实际消耗的内存是n+48。)

下面我们将介绍memcached的连接。

安装telnet工具

memcached客户端与服务器端的通信比较简单,使用的基于文本的协议,而不是二进制协议.

(http协议也是这样), 因此我们通过telnet即可与memcached作交互

[root@localhost libevent-2.0.22-stable]# yum install telnet*

linux连接memcached

[root@localhost libevent-2.0.22-stable]# telnet 192.168.1.112 11211

Trying 192.168.1.112...

Connected to 192.168.1.112.

Escape character is '^]'.

按下Ctrl + ] 打开回显功能,Enter即可.如下:

[root@localhost libevent-2.0.22-stable]# telnet 192.168.1.112 11211

Trying 192.168.1.112...

Connected to 192.168.1.112.

Escape character is '^]'.

^]

telnet>

可以看到memcached控制台输出了客户端连接的信息

<34 server listening (udp)

<35 server listening (udp)

<36 new auto-negotiating client connection

windows连接memcached

端口的访问权限,如下

[root@localhost libevent-2.0.22-stable]# /sbin/iptables -I INPUT -p tcp --dport 11211 -j ACCEPT

同样,在windows的控制台输入telnet 192.168.1.112 11211即可连接。

分布式缓存技术memcached学习系列(一)——linux环境下编译memcahed的更多相关文章

  1. 分布式缓存技术memcached学习系列(二)——memcached基础命令

    上文<linux环境下编译memcahed>介绍了memcahed在linux环境下的安装以及登录,下面介绍memcahed的基本命令的使用. Add 功能:往内存增加一条新的缓存记录 语 ...

  2. 分布式缓存技术memcached学习系列(五)—— memcached java客户端的使用

    Memcached的客户端简介 我们已经知道,memcached是一套分布式的缓存系统,memcached的服务端只是缓存数据的地方,并不能实现分布式,而memcached的客户端才是实现分布式的地方 ...

  3. 分布式缓存技术memcached学习系列(四)—— 一致性hash算法原理

    分布式一致性hash算法简介 当你看到"分布式一致性hash算法"这个词时,第一时间可能会问,什么是分布式,什么是一致性,hash又是什么.在分析分布式一致性hash算法原理之前, ...

  4. 分布式缓存技术memcached学习系列(三)——memcached内存管理机制

    几个重要概念 Slab memcached通过slab机制进行内存的分配和回收,slab是一个内存块,它是memcached一次申请内存的最小单位,.在启动memcached的时候一般会使用参数-m指 ...

  5. 分布式缓存技术redis学习系列

    分布式缓存技术redis学习系列(一)--redis简介以及linux上的安装以及操作redis问题整理 分布式缓存技术redis学习系列(二)--详细讲解redis数据结构(内存模型)以及常用命令 ...

  6. 分布式缓存技术memcached学习(二)——memcached基础命令

    上文<linux环境下编译memcahed>介绍了memcahed在linux环境下的安装以及登录,下面介绍memcahed的基本命令的使用. Add 功能:往内存增加一条新的缓存记录 语 ...

  7. 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装

    redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...

  8. 分布式缓存技术redis学习系列(五)——redis实战(redis与spring整合,分布式锁实现)

    本文是redis学习系列的第五篇,点击下面链接可回看系列文章 <redis简介以及linux上的安装> <详细讲解redis数据结构(内存模型)以及常用命令> <redi ...

  9. 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

随机推荐

  1. 超好用的一个JQUERY分页器-jpaginate

    jpaginate是一个自带滑动动画效果的jQuery分页插件,用户可以通过单击或只是悬停在箭头上的使页码滑动显示. 你可以用下面的方式调用插件: $(elementID).paginate() 您可 ...

  2. 51nod 1366 贫富差距

    题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 一个国家有N个公民,标记为0,1,2,...,N-1,每个公民有一个存款额.已知每个公 ...

  3. PHP: 打印post数据,返回长度不为1但内容为空的问题

    问题: 首先,html长这样: 我们可以看到textarea标签的name值为cten,那么我们进行查看Post是否能够正常获取到数据: 后台进行获取: 结果:我们可以正常获取到数据 接下来,我们进行 ...

  4. TP5.1:数据库的增删改查操作(基于数据库操作)

    1.在app/index/controller文件夹下创建一个文件,名为:Operation 注意:起名一定要避开关键字,例如:mysql,curd等等,如果使用关键字起名,会造成报错! 在Opera ...

  5. May 1 2017 Week 18 Monday

    The very essence of romance is uncertainty. 浪漫的精髓就在于它充满了种种可能. Yesterday my girl friend told me that ...

  6. java的sleep方法详解

    java的sleep方法详解: sleep并不是永久占有CPU,没有那个线程能永久占用CPU.它是指在自己时间片内睡眠,而不是急着交出CPU.yield()就是自己愿意立即交出时间片.因此一个线程sl ...

  7. elsevier期刊要求翻译

    百度文库 http://wenku.baidu.com/view/e20a27e84afe04a1b071de4e.html 官网文档 http://www.elsevier.com/journals ...

  8. iOS提示框,为什么你应该使用 MBProgressHUD?

    这是一篇带有一定笔者主观感情色彩的比较文章.文章着重对比github上最流行的两个iOS进度提示控件 MBProgressHUD 与 SVProgressHUD的各自优劣,来帮助初学者找到一个适合的i ...

  9. 51nod 1298 圆与三角形——计算几何

    题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1298 转化成判断三条线段和圆是否

  10. 什么是shell 是不是什么时候都可以使用shell

    因为Shell似乎是各UNIX系统之间通用的功能,并且经过了POSIX的标准化.因此,Shell脚本只要"用心写"一次,即可应用到很多系统上.因此,之所以要使用Shell脚本是基于 ...