`
qindongliang1922
  • 浏览: 2183252 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117508
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125907
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59878
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71284
社区版块
存档分类
最新评论

Centos6.5下安装Memcached完整示例

阅读更多
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据.简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

工作原理:

①客户端第一次访问应用程序时,会到数据库(RDBMS)中取出数据,返回给客户端;同时也将取出的数据保存到memcached中。

② 第二次访问时,因为数据已经缓存,不不用去数据库查询了,直接从memcached取。
那么memcached的快速和高效率是如何体现出来的呢?我们都清楚,RDBMS是文件型的数据库,最终还是以文件的形式保存在磁盘上。而memcached则不一样,它是key:value关系型的数据库,是保存在内存中的。那么就不用我再做说明了,内存的读写速度要比磁盘的读写速度快得多,前者是后者的10的6次方倍。http://blog.rekfan.com/?p=172


Memcached支持Linux系统,也支持Windows系统,分别需要不同的安装包,鉴于在Windows使用比较少,所以散仙今天就总结一下,在Centos下安装Memcached的整个流程,一方面是为了记录一下,防止日后生疏,另一方面也为刚刚使用Memcached的朋友们,提供一份入门的教程。

下面进入正题:


首先,memcached是基于libevent的,所以确保你的系统已经装了libevent,libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。 memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。
由于memcached和libevent是由C编写的,所以首先确保你的系统安装了gcc,如果
没有安装,使用yum安装即可
命令: 
yum -y install gcc
yum -y install gcc-c++

然后下载libevent
然后上传centos,进行给予权限,然后解压
# tar xzvf libevent-2.0.21-stable.tar.gz ##解压
# cd libevent-2.0.21-stable
# ./configure --prefix=/usr
# make
# make install

安装完后可以查看下/usr/lib是否有libevent等文件(ls -al /usr/lib | grep libevent)

然后下载memcached

# tar xzvf memcached-1.4.15.tar.gz
# cd memcached-1.4.15
# ./configure --with-libevent=/usr
# make
# make install
安装结果(ls -al /usr/local/bin/memcached)如图:




关于memcache启动的一些参数说明:

memcached命令参数解释:

-p <num>          监听的端口
-l <ip_addr>      连接的IP地址, 默认是本机
-d start          启动memcached 服务
-d restart        重起memcached 服务
-d stop|shutdown  关闭正在运行的memcached 服务
-d install        安装memcached 服务
-d uninstall      卸载memcached 服务
-u <username>     以<username>的身份运行 (仅在以root运行的时候有效)
-m <num>          最大内存使用,单位MB。默认64MB
-M                内存耗尽时返回错误,而不是删除项
-c <num>          最大同时连接数,默认是1024
-f <factor>       块大小增长因子,默认是1.25
-n <bytes>        最小分配空间,key+value+flags默认是48
-h                显示帮助


然后执行命令启动memcached
#/usr/local/bin/memcached -d -m 1024 -u root -p 11211 -P /tmp/memcached.pid

然后就可以使用telnet,来测试memcache的连接状态,

如果没有安装telnet服务,可以执行
yum install telnet-server
安装服务
yum install telnet
安装命令

然后编辑vi /etc/xinetd.d/telnet 文件,激活telnet,默认是禁用的,截图如下:


然后重启服务,执行命令 service xinetd restart


然后就可以测试memcached的连接,执行命令
telnet 127.0.0.1 11211

输入stats,会输出memcache的一些连接信息,包括PID
如果需要退出,则执行quit命令即可,截图如下:




退出telnet,执行quit命令即可,上图所示的memcached进程ID,很重要,如果我们需要关闭memcached服务时,就可以执行命令,kill -9 进程号 即可。


最后,我们在来看下如何使用JAVA API,简单的来测试下memcached,注意如果memcached的端口号,需要对外开放,否则,将会出现连接不上的异常,测试环境我们可以把防火墙关闭测试:
用到的jar包,如下所示:


测试,程序核心代码和运行结果如下:

package com.test.client;

import java.net.InetSocketAddress;

import net.spy.memcached.MemcachedClient;
/**
 * @author qindongliang
 * 
 * JAVA流行技术交流群: 324714439
 * 测试memcached客户端连接
 * 
 * **/
public class TestClient {
	
	
	
	public static void main(String[] args) throws Exception{
		
		MemcachedClient client=new MemcachedClient(new InetSocketAddress("192.168.75.130", 11211));
		  //60是超时数,默认以秒为单位
		  client.set("test", 60, "1111测试memcache成功了吧");
	 
		
		 System.out.println(client.get("test"));
		  client.shutdown();//关闭连接
		
		
	}

}


控制台打印内容如下所示:
2014-03-18 18:13:30.008 INFO net.spy.memcached.MemcachedConnection:  Added {QA sa=/192.168.75.130:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2014-03-18 18:13:30.011 INFO net.spy.memcached.MemcachedConnection:  Connection state changed for sun.nio.ch.SelectionKeyImpl@33c3e6
1111测试memcache成功了吧
2014-03-18 18:13:30.020 INFO net.spy.memcached.MemcachedClient:  Shut down memcached client



至此,我们已经安装测试成功了,最后散仙把memcached的JAVA API所用到的jar上传上来,方便大家测试。


  • 大小: 73.8 KB
  • 大小: 150.1 KB
  • 大小: 267 KB
  • 大小: 78.5 KB
分享到:
评论
7 楼 qindongliang1922 2015-07-13  
留香不留名 写道
厉害,讲得很透彻! 但是俺在测试连接memcach的时候,怎么连的都连不上,我已经把虚拟机的防火墙关闭了,但还是连不上,我想问一下连接用的ip应该是在memcach的配置文件里面设置的吧,我用“127.0.0.1”代替的,但还是连不上,虚拟机和本地计算机的ip都试过了,也不行。楼主,有空的时候能否给俺指导一下,感激不尽!


就写你虚拟机的ip就可以了
6 楼 留香不留名 2015-07-13  
厉害,讲得很透彻! 但是俺在测试连接memcach的时候,怎么连的都连不上,我已经把虚拟机的防火墙关闭了,但还是连不上,我想问一下连接用的ip应该是在memcach的配置文件里面设置的吧,我用“127.0.0.1”代替的,但还是连不上,虚拟机和本地计算机的ip都试过了,也不行。楼主,有空的时候能否给俺指导一下,感激不尽!
5 楼 sgq0085 2014-07-04  
请问楼主安装Memcached之前是否执行 make test ?

同样是在CentOS6.5下,执行mack test的时候,卡在“t/lru-crawler.t ...... 93/189”,这个地方。
最终的结果

> t/lru-crawler.t    (Wstat: 13 Tests: 95 Failed: 0)
>   Non-zero wait status: 13
>   Parse errors: Bad plan.  You planned 189 tests but ran 95.
> Files=49, Tests=6983, 735 wallclock secs ( 1.96 usr  0.23 sys + 356.49
cusr 49.42 csys = 408.10 CPU)
> Result: FAIL
> make: *** [test] Error 1

如果有解决办法请告知,非常感谢!
4 楼 qindongliang1922 2014-04-02  
JavaCFW 写道
  项目在用

装成功了吧
3 楼 qindongliang1922 2014-04-02  
宋建勇 写道

2 楼 JavaCFW 2014-04-02  
  项目在用
1 楼 宋建勇 2014-03-25  

相关推荐

    Centos6.5 镜像文件下载

    ### Centos6.5镜像文件下载与安装详解 #### 一、CentOS 6.5简介 CentOS是Community ENTerprise Operating System的缩写,是一个基于Linux内核的操作系统,它主要提供了企业级的计算环境。CentOS 6.5作为CentOS 6...

    CentOS6.5一键安装Mysql5.6

    本文将详细介绍如何在CentOS 6.5上进行MySQL 5.6的一键安装过程,包括必要的环境准备、安装步骤、配置优化以及安全设置。 一、环境准备 在开始安装之前,确保你的CentOS 6.5系统已经更新到最新,运行以下命令进行...

    CentOs 6.5 telnet 客户端 linux 64(离线安装)

    centos 6.5 telnet 客户端 安装文件 rpm包 centos 6.5 telnet 服务端 安装文件 rpm包 http://vault.centos.org/6.5/os/x86_64/Packages/ 从官网下载亲测可以用

    centos 6.5下安装文件上传下载服务

    centos 6.5下的文件上传下载服务安装和配置 centos 6.5下的文件上传下载服务是指在centos 6.5操作系统中安装和配置文件上传下载服务,以解决上传和下载文件的问题。这个服务可以让用户轻松地上传和下载文件,而不...

    centos6.5下安装ffmpeg的详细步骤

    ### CentOS 6.5 下安装 FFMPEG 的详细步骤及注意事项 #### 一、环境准备与背景介绍 FFMPEG 是一款强大的多媒体处理工具,它能够进行音视频编解码、格式转换、流媒体抓取等多种操作。对于需要处理大量音视频数据的...

    CentOS6.5离线安装openssh8.6p1软件包-步骤及依赖.rar

    在本案例中,我们有"CentOS6.5离线安装openssh8.6p1软件包-步骤及依赖.rar"这个压缩包文件,它应该包含了openssh 8.6p1以及所有必需的依赖项。在拥有互联网连接的机器上,你需要访问OpenSSH的官方网站或者通过yum...

    CentOS 6.5下安装Oracle 10g

    在CentOS 6.5环境下安装Oracle 10g是一项技术性强且需要精心准备的任务。Oracle 10g是一款广泛使用的数据库管理系统,它提供了高性能、高可用性和安全性。在CentOS 6.5上部署Oracle 10g需要满足一定的硬件和软件要求...

    centos6.5 离线安装 crontabs rpm 系统定时任务

    cronie-1.4.4-12.el6.x86_64.rpm cronie-anacron-1.4.4-12.el6.x86_64.rpm crontabs-1.10-33.el6.noarch.rpm procmail-3.22-25.1.el6.x86_64.rpm sendmail-8.14.4-8.el6.x86_64.rpm

    centos6.5安装教程,绝对详细,内附centos镜像等资源

    CentOS 6.5 安装教程详解 CentOS 6.5 是一个稳定、功能强大且广泛应用的 Linux 发行版,本文将详细介绍 CentOS 6.5 的安装步骤,包括虚拟机的安装、CentOS 镜像文件的下载和使用、连接工具的配置等内容。 一、...

    Centos6.5下安装oracle

    自己写的文档,经过亲自实践并截图的。centos6.5下安装11g任何版本

    Centos6.5安装教程for oracle

    ### CentOS 6.5 for Oracle 的安装与配置详解 #### 一、概述 本文将详细介绍如何在服务器上安装并配置CentOS 6.5系统,特别是针对Oracle数据库环境的优化和配置方法。CentOS 6.5是一款稳定且广泛使用的Linux发行版...

    oracle 11g for centos6.5静默安装

    标题中的知识点:“oracle 11g for centos6.5静默安装”说明本文是关于如何在CentOS 6.5操作系统上通过静默方式安装Oracle 11g数据库的过程。静默安装是指无需人工干预,通过预设参数或脚本实现自动安装的过程。这种...

    Centos6.5下安装Mysql5.7+的脚本及安装手册

    Centos6.5下安装Mysql5.7+的脚本及安装手册。 安装包需要从网上下载,我测试的安装包为mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz,500多M,上传不了。注意:必须是二进制安装版的,不能是rpm或源码版的。 经我测试...

    CentOS 6.5 最新可用的 Yum 源

    CentOS 6.5 的 软件源很多官方已经停止维护,该文件包内配置好的yum源是可以正常使用的。将原/etc/yum.repos.d/目录下原来的 .repo 备份, 然后把本文件包内的repo文件复制过去, yum clean all 后,再 yum ...

    CentOS 6.5 下安装 Redis 2.8.7

    ### CentOS 6.5 下安装 Redis 2.8.7 的详细步骤与常见问题解决方案 #### 一、准备工作 在开始安装 Redis 之前,确保你的 CentOS 6.5 系统已经更新到了最新版本,并且安装了必要的工具。可以通过以下命令进行系统...

    CentOs6.5镜像源

    CentOs6.5镜像源

    Centos6.5 下Docker的安装与简单配置

    Centos6.5 下Docker的安装与简单配置。。。。。。。。

    centos6.5 freeswitch安装.docx

    标签“centos6.5 freesw”表明该文档专门用于CentOS 6.5操作系统上安装Freeswitch。 部分内容解释 以下是对部分内容的解释: 1. 安装CentOS的同时,需要选择全部的开发包,以确保安装过程的顺畅。 2. 安装依赖包...

Global site tag (gtag.js) - Google Analytics