热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Centos6.5下安装Memcached完整示例

http:www.tuicool.comarticlesqYJBVbMemcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通

http://www.tuicool.com/articles/qYJBVb

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           监听的端口 
-l       连接的IP地址, 默认是本机 
-d start          启动memcached 服务 
-d restart        重起memcached 服务 
-d stop|shutdown  关闭正在运行的memcached 服务 
-d install        安装memcached 服务 
-d uninstall      卸载memcached 服务 
-u      以的身份运行 (仅在以root运行的时候有效) 
-m           最大内存使用,单位MB。默认64MB 
-M                内存耗尽时返回错误,而不是删除项 
-c           最大同时连接数,默认是1024 
-f        块大小增长因子,默认是1.25 
-n         最小分配空间,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上传上来,方便大家测试。 


推荐阅读
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • npminstall-Dbabelcorebabelpreset-envbabelplugin-transform-runtimebabelpolyfillbabel-loader ... [详细]
  • PHP编程能开发哪些应用?
    导读:很多朋友问到关于PHP编程能开发哪些应用的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
  • nosql数据库的基本要求Nosql全称是NotOnlySQL,是一种不同于关系型数据库的数据库管理系统设计方式。对NoSQL最普遍的解释是“非关系型的”,强调Key-ValueS ... [详细]
  • 一、NoSQL数据库简介Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的 ... [详细]
  • ubuntu 下php的mysql 扩展模块
    2019独角兽企业重金招聘Python工程师标准之前php与nginx环境已经搭建好了。但是php还没有集成mysql。没数据库啥也玩不转。放假下午在家没事便开始搞。开始谷歌 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 下图|通用型_企业用户如何选择合适的云服务器配置?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了企业用户如何选择合适的云服务器配置?相关的知识,希望对你有一定的参考价值。随着网络飞速发展,企业上云已成为 ... [详细]
  • 由PHP转让Memcahce,首先,需要在server安装Memcache,如何安装Memcache这不是本文的重点,大约m ... [详细]
  • yii框架目录结构详细分析说明
    php教程|php手册yii,目录结构php教程-php手册yii框架目录结构详细分析说明猫狗大战源码,华为云电脑ubuntu,梦见放走很多爬虫,parttmpphp,seo页面描 ... [详细]
  • 前言这篇文章是个人对后端工程师的面试复习点总结,不求面面俱到,只求发挥实效。你也可将你面试时遇到的值得记录下来的问题发给我,丰富这篇文章& ... [详细]
author-avatar
fengfeng
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有