设为首页 收藏本站
查看: 1324|回复: 0

[经验分享] Centos下安装memcached+memcached教程

[复制链接]

尚未签到

发表于 2018-12-24 13:39:05 | 显示全部楼层 |阅读模式
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)如图:

DSC0000.jpg
关于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,默认是禁用的,截图如下:

DSC0001.jpg
然后重启服务,执行命令 service xinetd restart
然后就可以测试memcached的连接,执行命令
telnet 127.0.0.1 11211
输入stats,会输出memcache的一些连接信息,包括PID
如果需要退出,则执行quit命令即可,截图如下:

DSC0002.jpg 退出telnet,执行quit命令即可,上图所示的memcached进程ID,很重要,如果我们需要关闭memcached服务时,就可以执行命令,kill -9 进程号 即可。
最后,我们在来看下如何使用JAVA API,简单的来测试下memcached,注意如果memcached的端口号,需要对外开放,否则,将会出现连接不上的异常,测试环境我们可以把防火墙关闭测试:
用到的jar包,如下所示:

DSC0003.jpg 测试,程序核心代码和运行结果如下:
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
  




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-655351-1-1.html 上篇帖子: 在LAMP架构中安装Memcached高性能内存对象缓存应用(内含所有源码包) 下篇帖子: 注意区分Memcached与Memcache差别
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表