阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS6.5下安装Memcached完整示例

141次阅读
没有评论

共计 3652 个字符,预计需要花费 10 分钟才能阅读完成。

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) 如图:

CentOS6.5 下安装 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,默认是禁用的,截图如下:

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

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

CentOS6.5 下安装 Memcached 完整示例
测试,程序核心代码和运行结果如下:

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 上传上来,方便大家测试。

Linux 公社资源站下载:

—————————————— 分割线 ——————————————

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2016 年资料 / 3 月 /27 日 /CentOS6.5 下安装 Memcached 完整示例 /

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

—————————————— 分割线 ——————————————

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-03/129531.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计3652字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中