`
wandejun1012
  • 浏览: 2738367 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

memcache集群 demo

 
阅读更多

 

环境:Memcache1.4.x+Magent0.6+CentOS5.x(32bit)+Maven3.x

 

概述:本教程包含Memcache安装,Libevent安装,集群管理者Magent安装,Telnet测试,Java测试。

 

1、Libevent安装

由于Memcache依赖libevent,所以需要先安装libevent.

采用yum安装:yum install libevent libevent-devel

 

 

2、Memcache安装

 

采用yum安装。

直接用yum install memcached

 

注:如果提示no package.

那么需要补充一下Yum的仓库

可以用以下的仓库:

 

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

 

 

3、Magent安装

这个不好用yum安装。

到http://code.google.com/p/memagent/这里下载magent0.6.tar.gz

3.1 拷贝到/usr/local目录下

3.2 解压:tar zxvf magent-0.6.tar.gz 

3.3 会产生4个文件

ketama.c

ketama.h

magent.c

Makefile

 

3.4 输入如下命令:

 

/sbin/ldconfig

 

 

3.5 输入如下命令:

 

sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile

 

 

3.6 输入如下命令:

 

Make

 

 

4 配置memcache服务:

 

memcached -m 1 -u root -d -l 192.168.0.107 -p 11212
memcached -m 1 -u root -d -l 192.168.0.107 -p 11213
memcached -m 1 -u root -d -l 192.168.0.107 -p 11214

 

 

5 启动magent服务:

./magent -u root -n 4096 -l 192.168.0.107 -p 12000 -s 192.168.0.107:11212 -s 192.168.0.107:11213 -b 192.168.1.118:11214

 其中,12000是magent的端口,11212、11213是memcached的主进程,11214是备用进程。

 

6.用windows的telnet测试,测试流程如下:

[root@localhost ~]# telnet 192.168.1.118 12000

Trying 192.168.1.118...

Connected to 192.168.1.118 (192.168.1.118).

Escape character is '^]'.

stats

memcached agent v0.6

matrix 1 -> 192.168.1.118:11212, pool size 0

matrix 2 -> 192.168.1.118:11213, pool size 1

END

set key1 0 0 5

hello

STORED

set key2 0 0 5

world

STORED

quit

Connection closed by foreign host.

 

[root@localhost ~]# telnet 192.168.1.118 11212

Trying 192.168.1.118...

Connected to 192.168.1.118 (192.168.1.118).

Escape character is '^]'.

get key1

END

get key2

VALUE key2 0 5

world

END

quit

Connection closed by foreign host.

 

[root@localhost ~]# telnet 192.168.1.118 11213

Trying 192.168.1.118...

Connected to 192.168.1.118 (192.168.1.118).

Escape character is '^]'.

get key1

VALUE key1 0 5

hello

END

get key2

END

quit

Connection closed by foreign host.

 

[root@localhost ~]# telnet 192.168.1.118 11214

Trying 192.168.1.118...

Connected to 192.168.1.118 (192.168.1.118).

Escape character is '^]'.

get key1

VALUE key1 0 5

hello

END

get key2

VALUE key2 0 5

world

END

quit

Connection closed by foreign host.

 模拟1121211213端口的memcache死掉

[root@localhost ~]# ps -ef | grep memcached

root      5126     1  0 19:14 ?        00:00:00 memcached -m 1 -u root -d -l 192.168.1.118 -p 11212

root      5134     1  0 19:14 ?        00:00:00 memcached -m 1 -u root -d -l 192.168.1.118 -p 11213

root      5142     1  0 19:14 ?        00:00:00 memcached -m 1 -u root -d -l 192.168.1.118 -p 11214

root      5976  5526  0 20:11 pts/1    00:00:00 grep memcached

[root@localhost ~]# kill -9 5126

[root@localhost ~]# kill -9 5134

[root@localhost ~]# telnet 192.168.1.118 12000

Trying 192.168.1.118...

Connected to 192.168.1.118 (192.168.1.118).

Escape character is '^]'.

get key1

VALUE key1 0 5

hello

END

get key2

VALUE key2 0 5

world

END

quit

Connection closed by foreign host.

 

模拟1121211213端口的memcache重启复活

[root@localhost ~]# memcached -m 1 -u root -d -l 192.168.1.118 -p 11212

[root@localhost ~]# memcached -m 1 -u root -d -l 192.168.1.118 -p 11213

[root@localhost ~]# telnet 192.168.1.118 12000

Trying 192.168.1.118...

Connected to 192.168.1.118 (192.168.1.118).

Escape character is '^]'.

get key1

END

get key2

END

quit

Connection closed by foreign host.

 

7. magent的语法较难理解,可以参考如下语法:

Storage Commands

Parameters :
<key> : the key of the data stored
<flags> : 32-bit unsigned integer that the server store with the data (provided by the user), and return along the data when the item is retrieved
<exptime> : expiration time in seconds, 0 mean no delay, if exptime is superior to 30 day, Memcached will use it as a UNIX timestamps for expiration
<bytes> : number of bytes in the data block
<cas unique> : unique 64-bit value of an existing entry (retrieved with gets command) to use with cas command
[noreply] : optional parameter that inform the server to not send the reply

These commands can return :
STORED to indicate success
NOT_STORED indicate that the data was not stored because condition for "add" or "replace" command wasn't met, or the item is in a delete queue
EXISTS indicate that the item you are trying to store with "cas" command has been modified since last fetch
NOT_FOUND indicate that the item did not exist or has been deleted 

Set

Store key/value pair in Memcached

Telnet command : set <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n

set key 0 900 4
data
STORED

 

 

8.Java客户端,常规的有3种

  •    memcached client for java
  •    spymemcached
  •    xmemcached

 

 

9.yum源分为以下几种,RPMForge, EPEL, REMI, ATrpms, Webtatic,我用的是EPEL

 

10.注意到:memcached client如果没办法直接下载Jar的话,可以连接到gitHub后,下载它的源码打开POM文件,看它的maven坐标是多少。

 

----------------------------------------------------------------------------------

参考资料:

https://daxingplay.me/study/centos/centos-yum-install-memcached.html    yum安装memcached

 

http://www.liquidweb.com/kb/install-memcached-on-centos-5/  yum安装lib event

 

http://ljh0721.iteye.com/blog/1812376  测试流程讲得非常详细。

 

 

http://blog.elijaa.org/?post/2010/05/21/Memcached-telnet-command-summary  telnet memcached语法详解

 

 

http://jony-hwong.iteye.com/blog/1174985 telnet memcached语法讲解,没有上面那个清晰。

 

http://code.google.com/p/memagent/  agent官网,语法讲解

 

 

http://freeloda.blog.51cto.com/2033581/1260824 Centos5 yum EPEL源详解

 

http://tecadmin.net/top-5-yum-repositories-for-centos-rhel-systems/  yum所有源讲解

 

http://www.vpsyou.com/2010/04/24/centos5-optimization-under-memcache-installation.html libevent安装成功测试、memcached安装成功测试

 

http://www.yourhowto.net/install-memcached-on-centos-5-and-6/  memcache安装后的一些配置,这个是我第一个参考的教程,不错。

 

 

http://blog.csdn.net/hjm4702192/article/details/7894080 完整的用Java Memcache Client的例子。

 

 

https://github.com/gwhalin/Memcached-Java-Client  Memcached客户端官网。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    tomcat+nginx+memcache集群

    tomcat+nginx+memcache高可用

    memcache缓存分布式集群

    在大型应用中,单台Memcache服务器可能无法满足高并发和大容量的需求,这时就需要搭建Memcache的分布式集群。 在标题提到的“memcache缓存分布式集群”中,主要涉及以下知识点: 1. **分布式存储原理**:分布式...

    memcache集群代理软件 magent-0.5.tar.gz

    然而,随着服务规模的扩大,单个Memcache服务器可能无法满足高可用性和扩展性的需求,这时就需要引入Memcache集群。而“magent-0.5.tar.gz”就是一款针对Memcache集群的代理软件,它允许我们管理多个Memcache实例,...

    memcache的demo

    本项目中的 `Demo` 文件包含了以下关键部分: 1. **安装与配置**: 首先,你需要在服务器上安装 Memcached。这通常通过包管理器(如 apt-get 或 yum)完成。然后,启动 Memcached 服务并确保其正在运行。 2. **...

    memcache集群安装

    **memcache集群安装详解** 在高并发的Web应用中,缓存系统是不可或缺的一部分,它能够有效减轻数据库的负载,提高应用性能。Memcache是一款广泛使用的分布式内存对象缓存系统,用于临时存储(缓存)中间结果或数据...

    Memcache集群环境下缓存解决方案.docx

    **Memcache集群环境下的缓存解决方案** Memcache是一款高性能、分布式的内存对象缓存系统,其核心机制是在内存中维持一个大的哈希表,用于存储各种格式的数据,如图像、视频、文件及数据库查询结果等。它的工作原理...

    springmvc配置Memcache缓存Demo

    5. **测试与调试**:运行`memcacheDemo`,确保应用程序能够正确地将数据存入和从Memcache中取出。如果在`db.properties`中配置了错误的Memcache服务器地址,程序将无法正常工作,因此需要检查并修正这个设置。 通过...

    memcache集群搭建.txt

    这个是Linux系统memcached集群的搭建方法,需要用到magnet包,libevent和memcached

    memcache-demo

    标题"memcache-demo"指的是一个关于Memcache的示例项目,其中可能包含如何在Java环境中,特别是在使用XMemcached这个客户端库时,集成和使用Memcache的代码实例。XMemcached是一个高效、稳定的Java Memcached客户端...

    Memcache原理及实现

    - Magent代理:Magent是一个开源的Memcached代理,可以提高Memcached集群的可用性和性能。 - 客户端库:对于Java开发,常用的客户端库是memcached client for java(也称为spymemcached),它提供方便的API接口,...

    memcache学习文档 for java demo

    Memcache 学习文档 for Java Demo Memcache 是一套分布式的高速缓存系统,由 LiveJournal 的 Brad Fitzpatrick 开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站...

    nginx+tomcat+memcache集群缓存配置及介质

    一 安装 1 jdk安装及tomcat7解压缩安装配置 不用说明 2 下载nginx1 4 2 for win32 解压安装 3 下载memcached服务端for win32 解压安装 设成windows服务端 执行memcached exe d install 4 下载tomcat7对应的memcached...

    MemcacheDemo

    MemcacheDemo是一个示例项目,主要用于演示和学习如何在应用程序中使用Memcached,这是一个高性能、分布式内存对象缓存系统。Memcached被广泛用于减轻数据库负载,通过存储经常访问的数据到内存中,加快了数据的读取...

    tomcat7集群session共享memcache依赖包1.8.3

    总的来说,"tomcat7集群session共享memcache依赖包1.8.3"提供了一种有效的方法,解决了在Tomcat7集群中Session共享的问题,通过Memcached作为中间件,实现了跨节点的Session一致性,提高了系统的可用性和用户体验。...

    集群环境下memcache解决session共享

    本篇将深入探讨如何在Tomcat8的集群环境中使用memcache来解决session共享的问题。 首先,让我们理解什么是session。Session是Web应用程序用来跟踪用户状态的一种机制,它存储在服务器端,通常包含了用户的登录信息...

    memcache+tomcat集群说明手册

    ### Memcache+Tomcat集群说明手册 #### 一、引言 随着互联网技术的发展与业务需求的不断增长,单一服务器已经难以满足高并发、大数据量处理的需求。因此,采用集群技术来提高系统的可用性、扩展性和性能变得尤为...

    Nginx+Memcache+Linux+Tomcat集群

    在构建高性能的Web服务环境中,Nginx、Memcache、Linux和Tomcat的集群组合是一个常见的解决方案。这个集群架构能够提供高可用性、负载均衡以及缓存优化,从而提高系统的响应速度和处理能力。 首先,让我们详细了解...

    Nginx+tomcat6+memcache配置集群session共享所需jar包

    在构建高性能、高可用性的Web应用系统时,集群和会话共享是两个关键点。这里我们关注的是如何通过Nginx、Tomcat6和Memcached实现集群中的session共享。这个压缩包“Nginx+tomcat6+memcache所需jar包”提供了实现这一...

    memcache1.2.1 for windows

    4. **负载均衡**:在分布式环境中,多个应用服务器共享同一Memcache集群,确保数据一致性。 **注意事项** 1. **数据持久性**:Memcache不支持数据持久化,断电或重启后数据丢失,适用于临时存储。 2. **内存管理**...

Global site tag (gtag.js) - Google Analytics