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

Centos下安装memcached+memcached教程

本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Centos下安装memcached+memcached教程相关的知识,希望对你有一定的参考价值。


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

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

工作原理
①客户端第一次访问应用程序时,会到数据库(RDBMS)中取出数据,返回给客户端;同时也将取出的数据保存到memcached中。 
② 第二次访问时,因为数据已经缓存,不不用去数据库查询了,直接从memcached取。 
那么memcached的快速和高效率是如何体现出来的呢?我们都清楚,RDBMS是文件型的数据库,最终还是以文件的形式保存在磁盘上。而memcached则不一样,它是key:value关系型的数据库,是保存在内存中的。那么就不用我再做说明了,内存的读写速度要比磁盘的读写速度快得多,前者是后者的10的6次方倍。

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();//关闭连接}

}


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

 

memcached教程:http://www.runoob.com/memcached/memcached-install.html

 


本文出自 “linux菜鸟” 博客,请务必保留此出处http://asura1992.blog.51cto.com/8159058/1953635


推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 阿里云虚拟主机安装多个织梦系统的方法
    本文介绍了在阿里云虚拟主机上安装多个织梦系统的方法。通过创建不同名称的文件夹并将不同的域名解析到对应的目录,可以实现多个系统的安装。在安装过程中需要注意修改数据库前缀,并在系统设置中还原数据库。同时还介绍了阿里云虚拟主机二级域名绑定二级目录和域名重定向的用法。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了在Android开发中使用软引用和弱引用的应用。如果一个对象只具有软引用,那么只有在内存不够的情况下才会被回收,可以用来实现内存敏感的高速缓存;而如果一个对象只具有弱引用,不管内存是否足够,都会被垃圾回收器回收。软引用和弱引用还可以与引用队列联合使用,当被引用的对象被回收时,会将引用加入到关联的引用队列中。软引用和弱引用的根本区别在于生命周期的长短,弱引用的对象可能随时被回收,而软引用的对象只有在内存不够时才会被回收。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
author-avatar
啲眼泪17
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有